图标辅助元素的设置
(1)导入模块
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体(解决中文无法显示的问题)
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像时负号“-”显示方块的问题
(2)创建面向对象fig的画布
fig = plt.figure()
(3)在画布fig上添加绘图区域
ax = fig.add_subplot(111)
(4)准备x,y轴的数据并用plot()绘制折线图
x = np.linspace(-np.pi, np.pi, 256, endpoint=True) #在-π到π之间平均地生成256个点
y1,y2 = np.sin(x), np.cos(x)ax.plot(x, y1, x, y2)
其中,np.pi是π的转义字符
(5)用 xlabel() 和 ylabel() 设置x,y轴的标签
ax.set_xlabel("x轴")
ax.set_ylabel("y轴",labelpad = 25, # 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
fontdict = {'color':'r', # 标签颜色
'fontsize':'15', # 标签文本大小
'rotation':'0'}) # 字体旋转角度
其中,labelpad:表示标签与坐标轴边框的距离
fontdict:表示控制标签文本样式的字典
(6)用xlim() 和 ylim() 来设置x,y轴的刻度范围
ax.set_xlim(left = x.min() * 1.5, right = x.max() * 1.5)
其中,left 和 right :表示x轴刻度的取值区间的左右位数
xmin 和 xmax :表示x轴刻度的最小最大值
(7)用xticks() 和 yticks() 来设置x,y轴的刻度标签
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])ax.set_yticks([-1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00],
[r'$-1$', r'$-\frac{3}{4}$', r'$-\frac{1}{2}$', r'$-\frac{1}{4}$', r'$0$', r'$\frac{1}{4}$', r'$\frac{1}{2}$', r'$\frac{3}{4}$', r'$1$'])
其中,'$字符串$' :为转义字符
r'$字符串$' :在字符串前加r,不转义,把字符串当为原始字符显示
\frac{分子}{分母} : 为分式的转义字符
编写数学表达式(参考matplotlib官网)
(8)用title()函数添加图表的标题
ax.set_title("正弦曲线和余弦曲线")
(9)用legend()函数添加图例
lines = ax.plot(x, y1, x, y2) #返回值
ax.legend(lines,['正弦','余弦'], loc='lower right', shadow=True, fancybox=True)
其中, shadow:控制图例的阴影
fancybox:控制图例是否为圆角边框
loc:控制图例在图标中的位置
bbox_to_anchor:是loc的上位替代,会覆盖loc函数的指令,用于微调图例在画布上的位置
(10)用grid()函数显示网格
ax.grid(b=True, axis='y', linewidth=0.3)
plt.show()
其中,b:表示是否显示网格
axis:表示显示那个方向的网格
linewidth:表示网格的宽度
which:表示网格的类型(major,minor,both三种)
上述的完整代码如下:
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
ax.plot(x, y1, x, y2)
ax.set_xlabel("x轴")
ax.set_ylabel("y轴",labelpad = 25, # 表示标签与坐标轴边框(包括刻度和刻度标签)的距离
fontdict = {'color':'r', # 标签颜色
'fontsize':'15', # 标签文本大小
'rotation':'0'}) # 字体旋转角度
ax.set_xlim(left = x.min() * 1.5, right = x.max() * 1.5)
ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$'])
ax.set_yticks([-1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00],
[r'$-1$', r'$-\frac{3}{4}$', r'$-\frac{1}{2}$', r'$-\frac{1}{4}$',
r'$0$',
r'$\frac{1}{4}$', r'$\frac{1}{2}$', r'$\frac{3}{4}$', r'$1$'
])
ax.set_title("正弦曲线和余弦曲线")
lines = ax.plot(x, y1, x, y2)
ax.legend(lines,['正弦','余弦'], loc='lower right', shadow=True, fancybox=True ,bbox_to_anchor=(1,0.5))
ax.grid(b=True, axis='y', linewidth=0.3)
plt.show()
运行结果如下:
补充
loc参数的取值
一般的转义字符号
小写希腊字母
标准函数名称
分隔符
二元运算符
还有其他的特殊符号查询matplotlib官网