1.1.3 图例
🚩图例就是在同一个表中显示多个图,我们要区分它们所对应的小框框:
import numpy as np import matplotlib.pyplot as plt # x轴 x = np.linspace(0, 2 * np.pi) # y轴 y = np.sin(x) # 正弦 # 绘制线形图 # 调整尺寸 plt.figure(figsize=(9,6)) # 绘制正弦波 plt.plot(x,y) # 绘制余弦波 plt.plot(x,np.cos(x)) plt.legend(['Sin', 'Cos'],fontsize = 18, # 字体大小 loc = 'center', # 图例居中 ncol = 2, # 图例展示时2个为一行 # 设置图例的位置 [x,y,width,height] bbox_to_anchor = [0, 1.05, 1, 0.2]) # 我们规定图形左下角为(0,0),右上角为(1,1) # 表示图例的位置在(0,1.05)的位置,且我们设置了居中
1.1.4 脊柱移动
🚩脊柱移动翻译成大白话就是黑色边框的移动
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 50) plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize = (9 ,6)) # plot绘制了两个图形,x-y成对出现就可以!!! plt.plot(x,np.sin(x),x,np.cos(x)) # 获取当前视图 ax = plt.gca() # 右边和上面脊柱消失,白色就是消失 ax.spines['right'].set_color('white') # 白色 ax.spines['top'].set_color('#FFFFFF') # 白色 # 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1 ax.spines['bottom'].set_position(('data', 0)) # 中间(竖直) ax.spines['left'].set_position(('data' , 0)) # 中间(水平) plt.yticks([-1,0,1],labels = ['-1', '0', '1'],fontsize = 18) plt.xticks([-np.pi, -np.pi / 2, np.pi / 2, np.pi], labels = [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'], fontsize = 18)
1.1.5 图片保存
🚩我们可以把我们绘制好的图形进行保存:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 50) plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize = (9 ,6)) # plot绘制了两个图形,x-y成对出现就可以!!! plt.plot(x,np.sin(x),x,np.cos(x)) # 获取当前视图 ax = plt.gca() # 右边和上面脊柱消失,白色就是消失 ax.spines['right'].set_color('white') # 白色 ax.spines['top'].set_color('#FFFFFF') # 白色 # 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1 ax.spines['bottom'].set_position(('data', 0)) # 中间(竖直) ax.spines['left'].set_position(('data' , 0)) # 中间(水平) plt.yticks([-1,0,1],labels = ['-1', '0', '1'],fontsize = 18) plt.xticks([-np.pi, -np.pi / 2, np.pi / 2, np.pi], labels = [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'], fontsize = 18) # 图片保存到当前路径下,命名为 1.png plt.savefig('./1.png')
我们在保存的时候,可以修改屏幕像素密度:dpi(默认为100)
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 50) plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize = (9 ,6)) # plot绘制了两个图形,x-y成对出现就可以!!! plt.plot(x,np.sin(x),x,np.cos(x)) # 获取当前视图 ax = plt.gca() # 右边和上面脊柱消失,白色就是消失 ax.spines['right'].set_color('white') # 白色 ax.spines['top'].set_color('#FFFFFF') # 白色 # 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1 ax.spines['bottom'].set_position(('data', 0)) # 中间(竖直) ax.spines['left'].set_position(('data' , 0)) # 中间(水平) plt.yticks([-1,0,1],labels = ['-1', '0', '1'],fontsize = 18) plt.xticks([-np.pi, -np.pi / 2, np.pi / 2, np.pi], labels = [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'], fontsize = 18) # 图片保存到当前路径下,命名为 2.png,像素密度设为 300 plt.savefig('./2.png', dpi = 300)
从两张图片的大小上其实就能看出清晰度的高低,因为保存的是同一张图
当然,我们也可以保存成pdf
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-np.pi, np.pi, 50) plt.rcParams['axes.unicode_minus'] = False plt.figure(figsize = (9 ,6)) # plot绘制了两个图形,x-y成对出现就可以!!! plt.plot(x,np.sin(x),x,np.cos(x)) # 获取当前视图 ax = plt.gca() # 右边和上面脊柱消失,白色就是消失 ax.spines['right'].set_color('white') # 白色 ax.spines['top'].set_color('#FFFFFF') # 白色 # 设置下面左边脊柱位置,data表示数据,axes表示相对位置0~1 ax.spines['bottom'].set_position(('data', 0)) # 中间(竖直) ax.spines['left'].set_position(('data' , 0)) # 中间(水平) plt.yticks([-1,0,1],labels = ['-1', '0', '1'],fontsize = 18) plt.xticks([-np.pi, -np.pi / 2, np.pi / 2, np.pi], labels = [r'$-\pi$', r'$-\frac{\pi}{2}$', r'$\frac{\pi}{2}$', r'$\pi$'], fontsize = 18) # 图片保存到当前路径下,格式为 pdf,命名为 1.pdf plt.savefig('./1.pdf')
如果你觉得白底太过于单调,我们在设置字体大小的时候可以设置颜色(改变边框的颜色):
# 设置一个绿边框 plt.figure(figsize = (9 ,6), facecolor = 'green')
如果我们想改变的是底色,我们可以在获取视图后进行更改:
# 获取当前视图 ax = plt.gca() # 底色改为绿色 ax.set_facecolor('green')
查看我们可以设置哪些颜色可以编写代码:
# 查看所有颜色 plt.colormaps()