子图--面向对象

子图:

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() #给各个子图取名

 

posted @ 2019-03-28 12:27  天子骄龙  阅读(227)  评论(0编辑  收藏  举报