- 字体设置
#设置字体为楷体
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
# python经典字体警告:RuntimeWarning: Glyph missing from current font. font.set_text(s, 0.0, flags=flags)
-
绘制sin、cos图,测试图例
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams['axes.unicode_minus'] = False
#获得设置大小的画布,是为第一个子图
fig , ax = plt.subplots(1, 1, figsize = (10, 6))
x = np.linspace(-2 * np.pi, 2 * np.pi, 100)
ax.plot(x, np.sin(x))
ax.plot(x, np.cos(x))
ax.set_title('测试')
#x轴设置,对于axes类,一般处理方法:要先设置数值类型的标签,再换成字符串
ax.set_xlim(-8, 8)#设置x轴标签的范围,一般在优先设置
ax.set_xticks([-2 * np.pi, -np.pi, 0, np.pi, 2 * np.pi])#设置x轴的标签
xlabels = (r' - 2$\pi$', r'$ - \pi$', '0', r'$ + \pi$', r' + 2$\pi$') #Latex语法
ax.set_xticklabels(xlabels)#更换x轴的标签
ax.set_ylim(-1.2, 1.2)
plt.show()
legend()绘制图例
matplotlib.pyplot.legend — Matplotlib 3.3.2 documentation
1. 一般使用的参数
ax.legend(handles, labels, loc)
- labels 是一个字符串序列,用来指定标签的名称;
- loc 是指定图例位置的参数,其参数值可以用字符串或整数来表示;
- handles 参数,它也是一个序列,它包含了所有线型的实例;
labels最重要,没有要设置的labels,就没必要绘制图例
对于loc:#一般使用两个参数:labels、loc
legendLabels = ('正弦函数:sin(x)', '余弦函数:cos(x)')
ax.legend(labels = legendLabels, loc = 'upper right')
2. 更多参数
-
ncol:将图例分为多少列(视觉效果:水平放置标签)
legendLabels = ('正弦函数:sin(x)', '余弦函数:cos(x)') ax.legend(labels = legendLabels, ncol = len(legendLabels))
-
(2) bbox_to_anchor:用于在bbox_transform坐标(默认轴坐标)中为图例指定任意位置(视觉效果:图例在图片外面)
legendLabels = ('正弦函数:sin(x)', '余弦函数:cos(x)') ax.legend(labels = legendLabels, bbox_to_anchor=(0, 1))
-
(3) frameon
legendLabels = ('正弦函数:sin(x)', '余弦函数:cos(x)') ax.legend(labels = legendLabels, loc = 'upper right', frameon = True, facecolor = 'blue', edgecolor = 'red', framealpha = 0.5, fancybox = True)
-
True(默认):绘制在一个patch实体上,视觉效果:有边框、背景(此时可设置背景色)
- facecolor, edgecolor, framealpha, fancybox等参数来设置图示的背景(不是图片的背景)的颜色, 边框颜色, 透明度, 以及形状
- False:绘制在图片上,视觉效果:无边框,背景跟随图片