题目:列表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) #绘制图形查看结果
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)
_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)
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)
tips: 对应字体的位置,可以在C盘,windows - Fonts文件夹下方查看
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)
plt.grid(alpha = 0.1)
plt.plot(x,y)
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进制下的数字进行设置
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)
设置不同图形的颜色,格式等