大家好!在数据处理的学习道路上,我一直希望能和大家携手共进、共同成长。今天咱们继续深入学习Python数据处理中的重要内容——数据可视化。学会用合适的图表展示数据,不仅能让数据变得直观易懂,还能帮助我们发现数据背后隐藏的信息和规律。话不多说,咱们马上开始今天的学习之旅!
在数据可视化的世界里,有各种各样的图表,每种图表都有自己独特的“本领”。
条形图特别适合用来并排展示大量数据。就像《华盛顿邮报》在报道婴儿死亡率时,用条形图比较不同国家的婴儿死亡率,这样可以让读者一眼看出不同国家之间的差异。假如我们现在有不同城市的平均薪资数据,想看看哪个城市薪资更高,用条形图就再合适不过了。例如,有北京、上海、广州、深圳这四个城市的平均月薪数据(单位:元),分别是15000、16000、13000、17000。在Python中,使用matplotlib
库来绘制条形图的代码如下:
import matplotlib.pyplot as plt
cities = ['北京', '上海', '广州', '深圳']
salaries = [15000, 16000, 13000, 17000]
plt.bar(cities, salaries)
plt.xlabel('城市')
plt.ylabel('平均月薪(元)')
plt.title('不同城市平均月薪对比')
plt.show()
运行这段代码,就能得到一个清晰展示各城市平均月薪差异的条形图。
折线图通常用于展示随时间推移的趋势。还是以婴儿死亡率为例,通过折线图可以比较不同国家的婴儿死亡率随时间的变化情况。假设我们有某公司过去一年每个月的销售额数据,想观察销售额的变化趋势,就可以用折线图。比如,1月销售额是100万元,2月是120万元,3月是110万元……12月是150万元。用matplotlib
绘制折线图的代码如下:
import matplotlib.pyplot as plt
import numpy as np
months = np.arange(1, 13)
sales = [100, 120, 110, 130, 140, 135, 150, 160, 155, 170, 180, 150]
plt.plot(months, sales)
plt.xlabel('月份')
plt.ylabel('销售额(万元)')
plt.title('某公司过去一年销售额变化趋势')
plt.show()
这样就能直观地看到销售额的起伏变化了。
matplotlib
绘制散点图的代码如下:import matplotlib.pyplot as plt
study_time = [5, 8, 6, 10, 7, 9, 4, 11, 8, 7]
scores = [70, 85, 75, 90, 80, 88, 65, 92, 84, 82]
plt.scatter(study_time, scores)
plt.xlabel('每周学习时间(小时)')
plt.ylabel('考试成绩')
plt.title('学习时间与考试成绩关系散点图')
plt.show()
从散点图中,我们可以大致看出学习时间和考试成绩之间的趋势关系。
2. 堆叠条形图:适合展示数据的组成或因素。比如,我们想展示一个班级学生成绩在不同分数段(优、良、中、差)的人数占比情况,用堆叠条形图就很合适。
3. 时序图和柱状图:可以用来展示数据的分布。例如,统计某城市每天的气温分布情况,用柱状图就能清晰地看到不同气温区间的天数分布。
matplotlib
是Python中一个非常强大的图表和图片库,用它可以绘制各种数据集。要使用它,首先需要安装,在命令行运行pip install matplotlib
就可以完成安装。
假设我们现在有一组商品的销量和利润数据,想绘制一个图表来观察它们之间的关系。销量数据为[100, 120, 150, 90, 110],利润数据为[2000, 2500, 3000, 1800, 2200]。使用matplotlib
绘制图表的代码如下:
import matplotlib.pyplot as plt
sales = [100, 120, 150, 90, 110]
profits = [2000, 2500, 3000, 1800, 2200]
plt.plot(sales, profits)
plt.xlabel('商品销量')
plt.ylabel('利润(元)')
plt.title('商品销量与利润关系图')
plt.show()
在绘制图表时,我们可以通过调用xlabel
和ylabel
方法来标记图表的坐标系,用title
方法为图表命名,最后调用show
方法来显示图表。matplotlib
还有很多其他功能,比如可以改变图表的颜色、标签、大小,使用多图、子区等,大家可以去matplotlib.org
上查看相关教程深入学习。
Bokeh也是一个很有用的Python绘图库,它能用简单的命令绘制更复杂的图表类型。如果想创建条形图、散点图或时间序列图,都可以试试Bokeh。首先要安装Bokeh,在命令行运行pip install bokeh
。
假设我们有一组不同品牌汽车的销量和价格数据,想绘制一个散点图来观察它们的关系。品牌数据为[‘A品牌’, ‘B品牌’, ‘C品牌’, ‘D品牌’, ‘E品牌’],销量数据为[500, 800, 600, 700, 900],价格数据为[15, 20, 18, 22, 16](单位:万元)。使用Bokeh绘制散点图的代码如下:
from bokeh.plotting import figure, show, output_file
from bokeh.models import ColumnDataSource
brands = ['A品牌', 'B品牌', 'C品牌', 'D品牌', 'E品牌']
sales = [500, 800, 600, 700, 900]
prices = [15, 20, 18, 22, 16]
source = ColumnDataSource(data=dict(
brand=brands,
sales=sales,
price=prices
))
p = figure(title='汽车销量与价格关系散点图', x_axis_label='销量', y_axis_label='价格(万元)')
p.scatter('sales', 'price', source=source)
output_file('car_sales_price.html')
show(p)
这段代码中,我们先创建了一个数据源ColumnDataSource
,然后用figure
创建一个图表对象,设置好标题和坐标轴标签,再用scatter
方法绘制散点图,最后通过output_file
指定输出的HTML文件名称,用show
方法展示图表。在浏览器中打开生成的HTML文件,就能看到交互式的散点图啦。
今天我们学习了不同图表的特点和应用场景,还掌握了matplotlib
和Bokeh
这两个Python绘图库的基本使用方法。通过这些知识,我们可以根据数据的特点和想要展示的信息,选择合适的图表和绘图库来进行数据可视化。
写作不易,如果这篇博客对你学习Python数据处理有所帮助,希望大家能点赞、评论支持一下,也欢迎大家关注我的博客。后续我会继续分享更多关于Python数据处理的知识,咱们一起进步!