1,安装 matplotlib:
python -m pip install -U pip # 升级pip工具
python -m pip install -U matplotlib # 安装 matplotlib
2,matplotlib 官网 https://matplotlib.org
官网有超多的示例、文档及源码。
3,先来一个简单的例子:正弦曲线,y=sin(x)
import numpy as np
from matplotlib import pyplot as plt
# 使用numpy模块生成图像数据
x_data = np.linspace(0.0, 3*np.pi, 100)
y_data = np.sin(x_data)
plt.plot(x_data, y_data)
plt.show()
运行结果:素颜0.0
4,优化一下上面的例子
- 设置画布尺寸
- 添加坐标轴、标题信息
- 重新设定横坐标、纵坐标
- 标记特殊点(比如最低点)
- 显示中文信息
- 显示图例、网格线等
完整代码:
# -*- encoding: utf-8 -*-
import numpy as np
from matplotlib import pyplot as plt
import matplotlib as mpl
# 设置中文字体
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
# 解决图像,负号'-'显示为方块的问题
mpl.rcParams['axes.unicode_minus'] = False
# 设置画布,在绘图之前可随时重设
plt.figure(figsize=(8, 5))
# x轴数据
x_data = np.linspace(0.0, 3*np.pi, 100)
# y轴数据
y_data = np.sin(x_data)
ax = plt.subplot() # ax对象,用于标记曲线上的特殊点,放在画图之前,设置画布之后
plt.plot(x_data, y_data, label="y=sin(x)") # label:图例名称
# 标记最小值,xy:被标记点的坐标,xytext:设定标记文本的显示位置,arrowprops:设置箭头样式
ax.annotate("(x={0}, y={1})".format("3π/2", "-1"), xy=(3*np.pi/2, -1), xytext=(5.5, -1.3),
arrowprops=dict(facecolor='white', width=0.1, headwidth=5, shrink=1))
# 设置x轴刻度。不使用默认刻度,这里使用自定义字符串刻度
x_ticks = ["0π", "π/2", "π", "3π/2", "2π", "5π/2", "3π"]
index = list(np.linspace(0.0, 3*np.pi, 7)) # 建立x_ticks位于x轴的索引
plt.xticks(index, x_ticks)
# index = [(np.pi*i/2) for i in range(0, 7)] # 同上
# plt.xticks(index, x_ticks, rotation=45) # x轴 刻度倾斜角度,rotation=45
# 设置y轴刻度。不使用默认刻度,这里使用自定义数值刻度
plt.yticks([i for i in np.linspace(-1.5, 1.5, 7)])
# 添加标题
plt.title("正弦曲线", color="blue") # color文本颜色
# 添加x轴名称
plt.xlabel("x 轴", color="blue")
# 添加y轴名称
plt.ylabel("y 轴", color="blue")
# 保存图片
# plt.savefig("plottest.png")
# 显示网格,
plt.grid(color='gray', linestyle=':', linewidth=1, alpha=0.8) # 设置网格线透明度:alpha=0.8
# 显示图例,用于显示在调用plot()时,添加的label
plt.legend(loc="upper right") # loc:图例显示位置
# 显示图片
plt.show()
# END
运行结果:美颜后0.0