Python学习记录 - matplotlib绘制温度变化折线图

题目:列表a表示10点到12点每一分钟的气温,累计为2个小时,绘制折线图观察每分钟气温的变化

查看数据,并绘制初步图形

#-*- coding: utf-8 -*-
from matplotlib  import pyplot as plt
import random

数据:
X轴:从10点到12点按照分钟查看,有120分钟,X轴需要为:0-120
Y轴:需要展示每一分钟的温度,使用random获取正常温度范围内的数据,取值个数与X轴的点数一致

x = range(0,120)  #每一分钟
y = [random.randint(20,35) for i in range(120)]  #取120个在20-35之间的数值表示温度
#使用random,需要导入random模块
plt.plot(x,y)  #绘制图形查看结果

Python学习记录 - matplotlib绘制温度变化折线图_第1张图片

1. 调整图片大小和清晰度,同时调整X轴的刻度,要求间隔为10mins

fig = plt.figure(figsize=(20,10),dpi=80) #figsize调整图片大小,dpi调整清晰度
plt.xticks(range(0,130,10))  #-->最小值为0,最大值为120,限定间隔10,对应range的最大值为120+10=130
plt.plot(x,y)

Python学习记录 - matplotlib绘制温度变化折线图_第2张图片

2. 要求X轴显示为 XX时XX分钟,不再单独显示为1-120分钟,依旧间隔10Mins

_x = list(x)[::10]  # -->取步长,数字和字符串一一对应,数据的长度一样
_xtick_labels=["10点{}分".format(i) for i in range(60)] 
_xtick_labels +=["11点{}分".format(i) for i in range(60)] 
#新建列表_xtick_labels,将X轴的序列存放在在列表中
plt.xticks(_x,_xtick_labels[::10])  #将X的取值与xtick_label设定的列表值一一对应,否则不能显示数据
plt.plot(x,y)

Python学习记录 - matplotlib绘制温度变化折线图_第3张图片

3. 调整X轴的中文字体,设定为微软雅黑,并适当旋转X轴文字

from matplotlib import font_manager #需要导入font_manager,进行字体设定
my_font = font_manager.FontProperties(fname = "\Windows\Fonts\msyhl.ttc")
plt.xticks(list(x)[::10],_xtick_labels[::10], rotation= 75,fontproperties=my_font)
#rotation - 设定文字旋转的角度
#将X轴的字体属性重新调整为设定的字体
plt.plot(x,y)

Python学习记录 - matplotlib绘制温度变化折线图_第4张图片

tips: 对应字体的位置,可以在C盘,windows - Fonts文件夹下方查看

4. 对应为X轴和Y轴提供名称,以及图表的名称,专门调整标题的字体加粗

plt.xlabel('时间',fontproperties=my_font)
plt.ylabel('温度 单位:℃',fontproperties=my_font)
plt.title('10点-12点每分钟气温变化情况',fontproperties=font_manager.FontProperties(fname = "\Windows\Fonts\msyhbd.ttc"))
plt.plot(x,y)

Python学习记录 - matplotlib绘制温度变化折线图_第5张图片

5. 在图表的背景添加网格线,并调整网格线格式(透明度)

plt.grid(alpha = 0.1)
plt.plot(x,y)

Python学习记录 - matplotlib绘制温度变化折线图_第6张图片

  1. 将以上温度数据作为上海,新增温度序列,体现北京的温度
y1 = [random.randint(20,35) for i in range(120)] 
plt.plot(x,y,label='上海',color='plum',linestyle=":")
plt.plot(x,y1,label = '北京',color='cyan',linestyle='--')
#color调整线条颜色,linestyle调整线条格式
plt.legend(prop=my_font) #调整图例的文字,注意为prop
#更多的颜色可以搜索颜色对应的名称或16进制下的数字进行设置

Python学习记录 - matplotlib绘制温度变化折线图_第7张图片

6. 保存绘制的图形,分别保存为png和svg格式

plt.savefig("./temp.png")
plt.savefig("./temp.svg")

总结(统统重要):
绘制折线图 plt.plot
设置了图片大小与分辨率 plt.figure
实现了图片的保存 plt.savefig
设置了X轴和Y轴的刻度与字符串 xticks
解决了刻度稀疏和密集的问题 xticks
设置了X轴和Y轴的标题 plt.xlabel(), plt.ylabel(), plt.title()
设置了字体 font_manager.FontProperties(fname="")
在一张图上绘制多个图形 plt.plot(x,y1), plt.plot(x,y2)
为不同的图形添加图例(加label参数,同时使用 legend)
设置不同图形的颜色,格式等

你可能感兴趣的:(Python,python)