python 使用matplotlib绘制折线图(表中添加中文)

1. matplotlib
  1. 能将数据进行可视化,更直观的呈现
  2. 是数据更加客观、更具说服力

matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建

例:假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]

from matplotlib import pyplot 
x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
# -->x轴和y轴的数据一起组成了所有要绘制出的坐标
# -->分别是(2,15),(4,13),(6,14.5),(8,17)...
pyplot.plot(x, y)
pyplot.show()

即所得结果:



这个结果与我们想要的结果并不完全相同,x轴和y轴的刻度不是我们想要的,另外,图片中没有相关的文字介绍,我们的坐标轴并没有明确表达其含义!

  1. 使用figure改变图片大小
from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

设置了图片大小,和图片的dpi

fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)

以矢量图保存,这样放大不会失真,不会模糊

plt.savefig("./t1.svg")
plt.show()

改变大小后的图
  1. 修改x的刻度
from matplotlib import pyplot as plt

x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
plt.xticks(x) # 这里传入的x就是x轴的列表
plt.yticks(range(min(y), max(y) + 1))
plt.show()

改变了坐标轴后

可以看到,刻度改变了,折线图会自适应刻度去变化。

  1. 中文支持
from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname=’/System/Library/Fonts/PingFang.ttc’)

x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
plt.xticks(x, fontproperties=my_font)
plt.yticks(range(min(y), max(y) + 1))
plt.show()

我们还可以添加描述:

plt.xlabel('时间', fontproperties=my_font)
plt.ylabel('温度', fontproperties=my_font)
plt.title('时间温度表', fontproperties=my_font)
添加了坐标轴描述

绘制网格

plt.grid()
带网格的图

网格是根据刻度来绘制的,想要改变网格间距,就更改刻度的稀疏。

绘制多张折线图时,只需要再plt.plot(x, y)一次即可

from matplotlib import pyplot as plt
from matplotlib import font_manager

my_font = font_manager.FontProperties(fname=’/System/Library/Fonts/PingFang.ttc’)

x = range(2, 26, 2)
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

fig = plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
y_2 = [21, 14, 31, 7, 5, 12, 17, 8, 14, 21, 12, 23]
plt.plot(x, y_2)
plt.xticks(x, fontproperties=my_font)
plt.yticks(range(min(y), max(y) + 1))

plt.xlabel(‘时间’, fontproperties=my_font)
plt.ylabel(‘温度’, fontproperties=my_font)
plt.title(‘时间温度表’, fontproperties=my_font)

plt.grid()
plt.show()

多条线

添加图例说明

plt.legend(prop=my_font)
# prop设置字体,目标是支持中文
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值