- matplotlib的三层结构
- 从骨架开始完善matplotlib
- 设置画布属性与图片保存
- 1、准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]
# 2、绘制图表 - 创建画布
plt.figure() - 在每个绘图区显示图例
axes[0].legend()
axes[1].legend() - 修改刻度
- 修改x、y的刻度显示
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5]) - 添加网格显示
axes[0].grid(True,linestyle=”—“,alpha=0.5)
axes[1].grid(True,linestyle=”—“,alpha=0.5) - 添加x、y轴描述以及标签信息
- 添加描述信息
axes[0].set_xlabel(“时间幻化”)
axes[0].set_ylabel(“温度变化”)
axes[0].set_title(“上海11点到12点的温度变化”) - 3、显示图表
plt.show()
matplotlib的三层结构
1、容器层
画板层 Canvas
画布层 Figure:plt.figure()
绘图区/坐标系 axes:plt.subplots()创建多个绘图区
2、辅助显示层(都是在绘图区之上的)
3、图像层(都是在绘图区之上的)
我们可以在绘图区上画各种各样的图表
从骨架开始完善matplotlib
我们使用matplotlib最简陋的时候。
我们需要先创建画布,绘制图像,显示图像。——这是一个最简单的画图框架
设置画布属性与图片保存
figure(figsize= (),dpi=())
figsize : 指定图的长宽
dpi : 图像的清晰度 dots per inch
返回fii对象
plt.savefig(path)
当我们调用plt.show之后,我们会释放画布中所有的资源,所以我们在保存图像的时候,要写在plt.show()之前。
当我们绘制好图片之后,可能会出现y轴波动太大的情况,这是因为我们y轴的区间或者说分辨率设置不合理所导致的。我们y轴的设置要契合实际情况。
plt.yticks()这个函数的功能是用来修改y的刻度。
在这里除了123是必须的,其他都是可有可无的,是我们为了使图像更好看而加上去的。
利用到图像层的更改
再添加一个城市的温度变化
多次plot
图例要加了label才能看得出来
同时绘制多张图——面向对象的操作方法
figure,axes = plt.subplots(nrows=1,ncols=1,**fig_kw)
返回画布和绘图区
画布之上可以创建多个绘图区
axes[0]代表操作第一个绘图区
axes[1]代表操作第二个绘图区
plt.方法名
axes.set_方法名
import matplotlib.pyplot as plt
import random
plt.rcParams[‘font.sans-serif’] = [‘SimHei’]
1、准备数据
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]
# 2、绘制图表
创建画布
plt.figure()
figure,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=80) # 利用subplot绘图
axes[0].plot(x,y_shanghai,label=”上海”)
axes[1].plot(x,y_beijing,color=”r”,linestyle=”—“,label=”北京”)
在每个绘图区显示图例
axes[0].legend()
axes[1].legend()
修改刻度
x_ticks_label = [“11点{}分”.format(i) for i in x]
y_ticks = range(40)
修改x、y的刻度显示
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[0].set_yticks(y_ticks[::5])
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_ticks_label[::5])
axes[1].set_yticks(y_ticks[::5])
添加网格显示
axes[0].grid(True,linestyle=”—“,alpha=0.5)
axes[1].grid(True,linestyle=”—“,alpha=0.5)
添加x、y轴描述以及标签信息
添加描述信息
axes[0].set_xlabel(“时间幻化”)
axes[0].set_ylabel(“温度变化”)
axes[0].set_title(“上海11点到12点的温度变化”)
axes[1].set_xlabel(“时间幻化”)
axes[1].set_ylabel(“温度变化”)
axes[1].set_title(“上海11点到12点的温度变化”)
3、显示图表
plt.show()
折线图的应用场景
折线图是某事物或者某指标随时间的变化状况
plt也可以画函数图像
散点图(scatter)
判断事物之间是否存在某些关系
柱状图
统计/对比
直方图
反应连续数据的分布状况