matplotlib入门一(解决中文无法显示的问题)

绘制简单的折线图

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")

总结:
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值