绘制简单的折线图
import matplotlib.pyplot as plt
%matplotlib inline
x = range(2,26,2)
y = [15,12,14,16,17,20,25,28,21,19,18,10]
plt.plot(x,y)
plt.show()
%matplotlib inline表示在Jupyter notebook中内嵌显示图片。
这里需要主要,x和y的元素的个数应该相同才能够绘制图形。
自定义坐标刻度和图片大小
x = range(2,26,2)
y = [15,12,14,16,17,20,25,28,21,19,18,10]
plt.xticks(range(2,25))
plt.yticks(range(min(y),max(y)+1))
plt.plot(x,y)
fig = plt.figure(figsize=(6,4),dpi=80)
plt.show()
plt.xticks(range(2,25))表示x轴刻度从2到24相隔长度为1,plt.yticks(range(min(y),max(y)+1))表示y的刻度是从y最小值到最大值
fig = plt.figure(figsize=(6,4),dpi=80)用来设置图片大小
绘制多条线以及绘制网格
import matplotlib.pyplot as plt
%matplotlib inline
x = range(2,26,2)
y1 = [15,12,14,16,17,20,25,28,21,19,18,10]
y2 = [12,14,13,18,12,28,23,10,19,27,20,10]
fig = plt.figure(figsize=(6,4),dpi=80)
#x轴刻度
#plt.xticks(x)
plt.plot(x,y1,label="y1",color="orange",linestyle=":")
plt.plot(x,y2,label="y2",color="red")
plt.grid(linestyle=":",alpha=0.8)#绘制网格,alpha表示透明度
plt.legend(loc="upper left")#添加图例
plt.show()
绘制多条线只需要plt.plot()多次即可,label为线条标签,color可以指定颜色,linestyle指定线条风格。
plt.grid(linestyle=":",alpha=0.8)用来绘制网格,alpha表示透明度
常用的颜色符号和线条风格如下:
颜色字符 | 风格字符 |
---|---|
r 红色 | - 实线 |
g 绿色 | - - 虚线 |
b 蓝色 | -. 点划线 |
y 黄色 | : 点虚线 |
plt.legend(loc=“upper left”)表示添加图例,并指定左上角位置。其他位置参数还有
-
best,upper right,upper left,lower left,lower right,right,center left,center,right,lower center,upper center,center
添加字符串到坐标轴
例如要显示10点到11点每分钟的气温变化,x轴上要显示出几点几分的字样。
import matplotlib.pyplot as plt
%matplotlib inline
x = range(0,120)
y = [random.randint(20,35) for i in range(120)]
plt.plot(x,y)
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
plt.xticks(list(x)[::10],_xtick_labels[::10],rotation=45)#rotation设置旋转的度数,list(x)[::10]转换为列表才能取步长
plt.show()
使用_xtick_labels作为一个列表用来存储x轴需要显示的字符串,并以步长为10取出与x轴的数字list(x)[::10]一一对应。rotation用来设置旋转的度数。
如上图所示,字符串拼接已经成功,但中文却无法显示,接下来解决matplotlib显示中文的问题。
解决matplotlib无法显示中文的问题
在终端输入fc-list查看系统支持的字体,fc-list :lang=zh查看支持的中文,注意冒号前面有空格。部分结果如下:
找到中文字体的路径,例如选择图上新宋体,路径为/usr/share/fonts/simsun.ttc,加入如下代码,指定字体的路径。
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/usr/share/fonts/simsun.ttc")
在x轴中添加fontproperties属性。
plt.xticks(list(x)[::10],_xtick_labels[::10],rotation=45 ,fontproperties=my_font)
注意,如果实在图例中显示中文,添加的属性不是fontproperties,而是prop,如下:
plt.legend(prop=my_font,loc="upper left")#添加图例
现在就可以正常显示中文了,如下图所示。
添加图片描述信息
为了更清楚的表达图片的信息,需要对图片添加描述信息
#添加描述信息
plt.xlabel("时间",fontproperties=my_font)#x轴信息
plt.ylabel("温度 单位(℃)",fontproperties=my_font)#y轴信息
plt.title("10点到12点每分钟温度变化情况",fontproperties=my_font)#图片标题
保存图片
保存图片到本地,只需要添加下面一行代码即可,"./image/sig_size.png"为需要保存到的路径
plt.savefig("./image/sig_size.png")
总结: