Matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图等。
- 折线图: plt.plot(),表示趋势
- 散点图: plt.scatter(),表示变量与变量之间的关系
- 柱状图: plt.bar(),表示数量的大小对比
- 直方图: plt.hist(),表示数据的分布
- 饼图: plt.pie(),表示不同部分的占比
我们需要知道不同的统计图的意义,以此来决定选择哪种统计图来呈现我们的数据。
常见图形种类及意义
- 折线图:以折线的上升或下降来表示统计数量的增减变化的统计图
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
- 散点图:用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。
特点:判断变量之间是否存在数量关联趋势,展示离群点(分布规律)
- 柱状图:排列在工作表的列或行中的数据可以绘制到柱状图中。
特点:绘制连离散的数据,能够一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)
- 直方图:由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据范围,纵轴表示分布情况。
特点:绘制连续性的数据展示一组或者多组数据的分布状况(统计)
- 饼图:用于表示不同分类的占比情况,通过弧度大小来对比各种分类。
特点:分类数据的占比情况(占比)
折线图绘制与保存图片
为了更好地理解所有基础绘图功能,我们通过天气温度变化的绘图来融合所有的基础API使用
1 matplotlib.pyplot模块
matplotlib.pytplot包含了一系列类似于matlab的画图函数。 它的函数作用于当前图形(figure)的当前坐标系(axes)。
import matplotlib.pyplot as plt
2 折线图绘制与显示
展现上海一周的天气,比如从星期一到星期日的天气温度如下
# 1)创建画布(容器层)
plt.figure(figsize=(10, 10))
# 2)绘制折线图(图像层)
plt.plot([1, 2, 3, 4, 5, 6 ,7], [17, 17, 18, 15, 11, 11, 13])
# 3)显示图像
plt.show()
可以看到这样显示效果并不好,我们可以加入更多的功能:
3 设置画布属性与图片保存
plt.figure(figsize=(), dpi=)
- figsize:指定图的长宽(单位英寸)
- dpi:图像的清晰度,也就是分辨率
返回fig对象
plt.savefig(path) #保存图像,必须在plt.show()之前运行,否则图像保存是空的
# 1)创建画布,并设置画布属性
plt.figure(figsize=(20, 8), dpi=80)
# 2)保存图片到指定路径
plt.savefig("test.png")
注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。
完善原始折线图1(辅助显示层)
需求:画出某城市11点到12点1小时内每分钟的温度变化折线图,温度范围在15度~18度
效果:
1 准备数据并画出初始折线图
import numpy as np
# 画出温度变化图
# 准备x, y坐标的数据
x = range(60)
y_shanghai = [np. random.uniform(15, 18) for i in x]
# 1)创建画布
plt.figure(figsize=(20, 8), dpi=80)
# 2)绘制折线图
plt.plot(x, y_shanghai)
# 3)显示图像
plt.show()
2 添加自定义x,y刻度
plt.xticks(x, **kwargs)
x:要显示的刻度值
plt.yticks(y, **kwargs)
y:要显示的刻度值
# 增加以下两行代码