1.绘制一天内温度的折线图
1.1 折线图基础绘制
一天之内的温度从凌晨2点开始,每隔2小时测量一次温度,12次温度数据为
y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
现在需要将温度作为纵坐标,时间作为横坐标,绘制折线图
首先需要生成横坐标,这里可以通过实现,实际就是从2开始,一直到24
x = range(2, 25, 2)
可以简单看一下里面的数据
for x in range(2, 25,2):
print(x)
通过plot
可以确认横坐标和纵坐标,show
进行展示
# 绘图
plt.plot(x, y)#这里x和y的数量需要是相等的
# 展示图形
plt.show()
输出的结果就是一张图
1.2 调整大小分辨率
展示的图片可以进行大小、分辨率的修改以及进行保存,通过figsize
设置长宽,dpi
设置分辨率
# 设置图片大小
plt.figure(figsize=(20, 8),dpi=80)
加上这一段后,再生成结果就会发现图片的大小发生了改变
1.3 图片保存
如果需要对这张图片进行保存,可以加一句
# 保存图片
plt.savefig('./1.1matplotlib基础绘图.png') # 保存为svg矢量图可以避免放大后产生锯齿
执行后就会在当前文件夹里生成一张图片
1.4 修改坐标轴刻度
如果要修改x轴的刻度,可以通过将x
的值作为刻度
# 设置x轴的刻度
plt.xticks(x)
这样跑出来的结果就是
修改y轴的刻度,可以加上
# 设置y轴的刻度
plt.yticks(range(min(y),max(y)+1))
这时就会发现y轴的刻度也发生了改变
不过目前坐标轴上只有数字,难以直观看出来具体时间和温度单位,所以需要将x轴上的数字改成时间,可以通过在xticks
里增加参数来实现
x_change = ["{}:00".format(i) for i in range(2, 25, 2)]
plt.xticks(x, x_change)
xticks(x, x_change)
的作用就是用x_change
来替代原来的x
,这时候绘制出来的折线图里,横坐标就更加贴近生活了
1.5 增加中文图表描述信息
如果需要对表格以及坐标轴增加注释,可以通过实现
plt.xlabel("时间")
plt.ylabel("温度(℃)")
plt.title("一天的温度变化情况")
但执行之后却会出现乱码的情况,这是因为matplotlib
默认并不支持中文,所以需要提前获取这台电脑的中文字体,需要先导入对应包,并定义参数my_font
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
再修改上面添加的代码
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("一天的温度变化情况", fontproperties=my_font)
这时候就可以正常绘制出带有中文的图表了
1.6 增加辅助网格线
如果觉得上面的图看的不够清楚,可以增加网格线进行辅助使用
# 增加辅助网格线
plt.grid()
完整代码如下
from matplotlib import pyplot as plt
from matplotlib import font_manager
x = range(2, 25, 2)
y = [15, 13, 14, 5, 17, 20, 25, 26, 24, 22, 18, 15]
my_font = font_manager.FontProperties(fname="C:\Windows\Fonts\msyh.ttc")
# 设置图片大小
plt.figure(figsize=(20, 8),dpi=80)
# 绘图
plt.plot(x, y)
# 设置x轴的刻度
#plt.xticks(x)
x_change = ["{}:00".format(i) for i in range(2, 25, 2)]
plt.xticks(x, x_change)
# 设置y轴的刻度
plt.yticks(range(min(y),max(y)+1))
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度(℃)", fontproperties=my_font)
plt.title("一天的温度变化情况", fontproperties=my_font)
# 增加辅助网格线
plt.grid()
# 保存图片
#plt.savefig('./1.1matplotlib基础绘图.png') # 保存为svg矢量图可以避免放大后产生锯齿
# 展示图形
plt.show()
2.分别绘制两天温度的折线图
上面说的只是一条折线的绘图,matplotlib
也可以实现两条折线的绘图,方式基本一样,只是需要增加部分代码
# 绘制图形,设置标签、颜色、线条样式
plt.plot(x, y1, label='第一天', color="#F08080")
plt.plot(x