【Matplotlib数据可视化】基础绘图辅助功能完善

832 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

1. 添加网格显示

为了更加清楚地观察图形对应的值,我们可以在Matplotlib库中为图像开启网络显示,具体语法如下所示:

plt.grid(True, linestyle='--', alpha=0.5)

  • 其中参数True表示显示网格
  • linestyle表示网格央视,--表示虚线
  • alpha=0.5表示网格透明度,1表示最深,0表示最浅

2. 添加描述信息

添加x轴,y轴描述信息及标题

  • xlabel设置x轴标题
  • ylabel设置y轴标题
  • title设置图标题
  • 通过fontsize参数可以修改图像中字体大小

具体语法如下所示:

plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点0分到12点之间的温度变化图示", fontsize=20)

3. 图像保存

我们可以将图像保存到指定位置,具体语法如下所示:

  • 引号中是要保存的路径,./表示保存到当前目录下
  • test为图像保存名称
  • .png为图像保存格式
# 保存图片到指定路径
plt.savefig("./test.png")

注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片,因此保存路径语句要放在图像显示语句前。

4. 案例演示:

使用以上所属所有辅助功能,完成绘制指定时间段,某城市温度折线图。

4.1 代码演示

具体完整代码如下所示:

import random
import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要更改axes.unicode_minus参数
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 0. 准备x,y坐标的数据
x = range(60)
y = [random.uniform(15, 18) for i in x]   # 列表生成式

# 1. 创建画布
plt.figure(figsize=(20, 8), dpi=100)

# 2. 绘制折线图
plt.plot(x, y)

# 2.1 添加x,y轴刻度
# 设置x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)

# 修改x,y轴坐标刻度显示
plt.xticks(x[::5], x_ticks_label[::5])  # 坐标刻度不可以直接通过字符串进行修改
plt.yticks(y_ticks[::5])

# 2.2 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)  # 开启网格,虚线,透明度0.5

# 2.3 添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点0分到12点之间的温度变化图示", fontsize=20)

# 2.4 图像保存
# 保存图片到指定路径
# 在引号中放到是保存的路径
plt.savefig("./test.png")


# 3. 显示图像
plt.show()

4.2 运行结果

上述代码运行结果如下图所示:运行后可以发现,在当前目录下,创建了一个名为test.png的图片。 test.png