1. matplotlib
能将数据进行可视化,更直观的呈现
是数据更加客观、更具说服力
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轴的刻度不是我们想要的,另外,图片中没有相关的文字介绍,我们的坐标轴并没有明确表达其含义!
使用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()
改变大小后的图
修改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()
改变了坐标轴后
可以看到,刻度改变了,折线图会自适应刻度去变化。
中文支持
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设置字体,目标是支持中文
添加了图例
如果觉得《python怎么绘制折线图_python 使用matplotlib绘制折线图》对你有帮助,请点赞、收藏,并留下你的观点哦!