from matplotlib import pyplot as plt
from matplotlib import font_manager
pyplot:是绘制图像的模块,可以绘制散点图,条形图,折线图,直方图等各类图表。
font_manager:让图表可以显示中文,否者图表只会正常显示数字和英文。
各种图表的显示内容和效果,都是有一个不变的框架,针对不同图表的相关特殊内容相对比较少,所以绘制图表的学习还是相对容易的。
my_font = font_manager.FontProperties(fname="c://windows//fonts//msyh.ttc")
之后需要设置相关字体的时候,在参数括号中,写入my_font。
也可以查找相关资料修改显示字体,这只是其中一种。
y_3 = [11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10 = [26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
x_3 = range(1,32)
x_10 = range(51,82)
数据记录的是3月份和10月份两个月每天的气温变化。
显示效果要求用一个坐标轴,x轴显示两个月的日期,即左边一个月,右边一个月。y轴显示气温的刻度。两个月使用两个颜色显示。
x_3 = range(1,32):即一个列表,从1开始,有31个元素。
x_10 = range(51,82):也是一个列表,从51开始,31个元素。
两个列表中的数字不连续,是想要实现左右两边显示两个月的内容。
plt.figure(figsize=(20,8),dpi=80)
figsize=(20,8):是宽高比
dpi=80:是像素密度,越大显示越清晰
plt.scatter(x_3,y_3,label = '3月份')
plt.scatter(x_10,y_10,label = '10月份')
不同的图表对应plt不同方法,但是输入的参数基本都一样。
x_3:输入x轴显示的位置,注意不是显示的刻度,可以理解为规定了x轴间隔多少为一格,x轴对应的字符内容,需要使用另一个方法。
y_3:输入y轴显示的位置,同样理解为规定了y轴间隔多少为一格。
label = ‘3月份’:说明这部分数据是什么数据,只有这儿写label并不会显示,需要在写其他的方法,让label作为图例显示。
plt.legend(prop = my_font)
专门针对plt的绘图函数,写绘制散点图、条形图、直方图的函数参数中写到label,然后在写legend()参数输入字体参数,就会显示图例,并且中文显示。
_x = list(x_3)+list(x_10)
_xtick_labels = ['3月{}日'.format(i) for i in x_3]
_xtick_labels += ['10月{}日'.format(i-50) for i in x_10]
plt.xticks(_x[::3],_xtick_labels[::3],fontproperties=my_font,rotation = 45)
plt.xlabel('时间',fontproperties=my_font)
plt.ylabel('温度',fontproperties=my_font)
plt.title('标题',fontproperties=my_font)
设置x轴描述信息,y轴描述信息,图表的标题
并且都需要设置显示字体
plt.show()
显示图表最不能缺少的语句