Matplotlib——基础语法与常用参数
基本绘图流程
In[ ]: import numpy as np #引入 np
import matplotlib.pyplot as plt #引入 plt
plt.plot([3,3,5,6,2]) #用 plot 函数绘制二维图形
#当只有一组数据时,此数据代表 y 轴数,下标代表 x 轴数
plt.ylabel("garde") #给 y 轴加标签 “gard”
plt.savefig('D:/classwork/例1.png'.dpi=600) #保存图形,dpi 英寸像素点(质量)
plt.show() #显示图形,默认 PNG 格式
使用Matplotlib绘制图表,需要先导入绘制图表的模块pyplot
Import matplotlib.pyplot as plt(plt引入模块别名)
绘图流程:创建画布—创建子图——制作图形——美化图片——保存图片——显示图片
Pyplot模块中默认有一个Figure对象,该对象可以理解为一张空白的画布,用于容纳图表的各种组件。
1.创建画布与创建子图
第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅画上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
创建一个空白画布
如果不希望在默认的画布山上绘制图形,则可以调用figure()函数构建一张新的空白画布
plt.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,frameon=True)
num:图像编号或名称,数字为编号,字符串为名称
figsize:指定 figure 的宽和高,单位为英寸
dpi:参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80,1英寸等于2.5cm
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框
创建画布
In[ ]: %matplotlib notebook #如果画布不显示,则输入此行
fig=plt.figure(1,facecolor='r')
plt.savefig('D:/classwork/例2.png',facecolor=fig.get_facecolor())
创建并选中子图
plt.subplot(nrows,ncols,plot_number)
#行 #列 #当前子图区
创建子图
In[ ]: fig=plt.figure(figsize=(5,5),facecolor='#FF9966') #创建画布时设置背景颜色
plt.subplot(3,2,4)
plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.xlabel("garde")
plt.savefig('D:/classwork/例3',dpi=600,facecolor=fig.get_facecolor())
2.添加画布内容
第二部分是绘图的主体部分。其中的添加标题、添加坐标轴名称、绘制图形等步骤是并列的,没有先后顺序,但是添加图例一定要在绘制图形之后。
Pyplot中添加各类标签和图例的常用函数
3.保存与显示图形
第三部分主要用于保存和显示图形,这部分内容的常用函数只有两个,并且参数很少。
Pyplot中保存与显示图形的常用函数
pyplot中的基础绘图语法
In[ ]: import numpy as np
import matplotlib.pyplot as plt
a = np.arange(0,1.1,0.01)
plt.title('lines') #添加标题
plt.xlabel('x') #添加 x 轴名称
plt.ylabel('y') #添加 y 轴名称
plt.xlim((0,1)) #确定 x 轴范围
plt.ylim((0,1)) #确定y 轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1]) #规定 x 轴刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1]) #规定 y 轴刻度
plt.plot(a,a**2) #添加 y=x^2 曲线
plt.plot(a,a**4) #添加 y=x^4 曲线
plt.legend(['y=x^2','y=x^4']) #添加图例
plt.savefig('D:/classwork/例4.png')
plt.show()
Out[ ]:
包含子图绘制的基础语法
In[ ]: rad = np.arange(0,np.pi*2,0.01)
#第一幅子图
p1 = plt.figure(figsize=(8,6),dpi=80) #确定画布大小
ax1 = pl.add_subplot(2,1,1) #创建一个2行1列的子图,并开始绘制第一幅
plt.title('lines') #添加标题
plt.xlabel('x') #添加 x 轴的名称
plt.ylable('y') #添加 y 轴的名称
plt.xlim((0,1)) #添加 x 轴范围
plt.ylim((0,1)) #添加 y 轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1]) #确定 x 轴刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1]) #确定 y 轴刻度
plt.plot(rad,rad**2) #添加 y=x^2 曲线
plt.plot(rad,rad**4) #添加 y=x^4 曲线
plt.legend(['y=x^2','y=x^4'])
#第二幅子图
ax2 = pl.add_subplot(2,1,2) #开始绘制第二幅
plt.title('sin/cos') #添加标题
plt.xlabel('rad') #添加 x 轴的名称
plt.ylabel('value') #添加 y 轴的名称
plt.xlim((0,np.pi*2)) #确定 x 轴范围
plt.ylim((-1,1)) #确定 y 轴范围
plt.xticks([0,np.pi/2,np.pi,np.pi*1.5,np.pi*2]) #确定 x 轴刻度
plt.yticks([-1,-0.5,0,0.5,1]) #确定 y 轴刻度
plt.plot(rad,np.sin(rad)) #添加 sin 曲线
plt.plot(rad,np.cos(rad)) #添加 cos 曲线
plt.legend(['sin','cos'])
plt.savefig('D:/classwork/sincos.png')
plt.show()
Out[ ]:
设置 pyplot 的动态参数
pyplot 使用 rc 配置文件来自定义图形的各种默认属性,被称为 rc 配置或 rc 参数。在 pyplot 中,几乎所有的属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网格属性、文本、字体等。
调节线条的 rc 参数
In[ ]: #原图
x = np.linspace(0,4*np.pi) #生成 x 轴数据
y = np.sin(x) #生成 y 轴数据
plt.plot(x,y,label=("$sin(x)$") #绘制 sin 曲线图
#LaTex格式
plt.title('sin')
plt.savefig('D:/classwork/默认sin曲线.png')
plt.show()
Out[ ]:
In[ ]: #修改 rc 参数后的图
plt.rcParams['lines.linestyle'] = '-.'
plt.rcParams['lines.linewidth'] = 3
plt.plot(x,y,label='$sin(x)$') #绘制三角函数
plt.title('sin')
plt.savefig('D:/classwork/修改rc参数后的sin曲线.png')
plt.show()
Out[ ]:
marker取值 | 意义 | marker取值 | 意义 |
'1' | 下花三角 | ‘ 2 ’ | 上花三脚 |
'3' | 左花三角 | '4' | 右花三角 |
调节字体
默认的pyplot 字体并不支持中文字符的显示,因此需要通过设置。
(1)rcParams 修改字体实现中文显示
此方法会将其全部都设置为中文显示,其他无需设置的也会设置,除非新建,不推荐使用。
rcParams 的属性
属性 | 说明 |
'font.family' |
用于显示字体的名字 |
'font.style' |
用于显示字体风格,正常'normal'或'italic' |
'font.size' |
用于显示字体大小,整数字号或者'large','x-small' |
matplotlib.rcParams['font.family']='SimHei' #SimHei 黑体
In[ ]: #无法显示中文标题
plt.plot(x,y,label='$sin(x)$') #绘制三角形
plt.title('sin曲线')
plt.savefig('D:/classwork/无法显示中文标题 sin曲线.png')
plt.show()
In[ ]: #设置 rc 参数显示中文标题
#设置字体为 SimHei 显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.reParams['axes.unicode_minus'] = False #设置正常显示符号
plt.plot(x,y,label="$sin(x)$") #绘制三角函数
plt.title('sin 曲线')
plt.savefig('D:/classwork/显示中文标题 sin曲线.png')
plt.show()
Out[ ]:
(2)在有中文输出的地方,增加一个属性:fontproperties
plt.title('sin曲线',fontproper='SomHei',fontsize=20)
复杂的绘图区域
plt.subplot2grid(GridSpec,CurSpec,colspan=1,rowspan=1)
理念:设定网格,选中网格,确定选中行列区域数量,编号从0开始。
plt.subplot2grid((3,3),(1,0),colspan=2)
# (3,3) 设定 3*3 网格,共 9 个网格
# (1,0) 选定网格,确定第1 行,第 0 列
# colspan=2,从第 1 行,第 0 列开始选中两列
plt.subplot1grid((3,3),(0,0),colspan=3)
plt.subplot3grid((3,3),(1,2),rowspan=2)
plt.subplot4grid((3,3),(2,0))
plt.subplot5grid((3,3),(2,1))
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步