子图--面向对象
子图:
plt.subplot(2, 1, 1) #同一图中分开绘制图像
#参数1 子图的行数;参数2 子图的列数;参数3 第几个图像
x=np.linspace(-10,10,10)
y=x**2
plt.plot(x,y,linestyle=':',color='red',marker='o') #画直线
#"ob" 设置画出坐标点,但是不连线
plt.subplot(2, 1, 2)
x1=np.linspace(-10,10,10)
y1=x**2-20
plt.plot(x1,y1,linestyle='--',color='b',marker='*')
效果图:
个人理解:plt--画本 figure--产生画纸
子图-面向对象
import numpy as np import matplotlib.pyplot as plt #解决能显示中文 plt.rcParams['font.sans-serif']=['SimHei'] #指定默认字体 SimHei为黑体 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 x=np.arange(0,10,1) fig=plt.figure() #定义一张图纸fig---面向对象作图 #如果要多张图,可以定义多张图纸 ax1 = fig.add_subplot(2,2,1) #添加子图 #将画布分割成2行2列,图像画在第1块--子图位置 #返回值:子图对象 h=ax1.plot(x,x) #在指定子图上画图 #返回值:所画图对象 t=ax1.set_title('标题') #子图标题 #返回值:标题对象 ax2 = fig.add_subplot(2,2,2) #添加子图 h1=ax2.plot(x,-x) h=ax1.plot(x,-x) #在ax1上再添加一张图 plt.show()
fig = plt.figure(figsize=(12, 5)) # 定义一张图纸fig
figsize=(12, 5) 图纸大小 单位:英寸
self.ax1.set_xlabel("频率",fontsize=24) #x轴标题
self.ax1.set_ylabel("响度", fontsize=24,rotation=0) #y轴标题
推荐:
fig,axes=plt.subplots(ncols=2,nrows=2) #定义一张图纸fig,里边两行两列的子图axes
ax1,ax2,ax3,ax4=axes.ravel() #给各个子图取名