matplotlib以对象方式绘制子图

matplotlib有两种绘图方式,一种是基于脚本的方式,另一种是面向对象的方式

面向脚本的方式类似于matlab,面向对象的方式使用起来更为简便

创建子图的方式也很简单

fig,ax = plt.subplots(2,2)

如上面这句就是创建一个2×2的子图

matplotlib以对象方式绘制子图

 

 

 可以在idle里查看它返回的是什么,第一个值是一个图像对象,第二个值是一个2×2的AxesSubplot对象

因此可以使用迭代的方式访问这些子图对象,直接上代码吧

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-2*np.pi,2*np.pi,500)
y1=np.sin(x)
y2=np.cos(x)
y3=np.exp(x)
y4=x**2
y_list=np.vstack((y1,y2,y3,y4))
f_name=['sin(x)','cos(x)',r'$e^x$',r'$x^2$']

fig,ax = plt.subplots(2,2)

for i in range(2):
    for j in range(2):
        y=y_list[i*2+j]
        ax[i][j].scatter(x,y,s=5)
        ax[i][j].set_title(f_name[i*2+j])
##        ax[i][j].set_frame_on(False)#去掉外边框
##        ax[i][j].axes.get_xaxis().set_visible(False)#去掉x轴的标签
##        ax[i][j].axes.get_yaxis().set_visible(False)#去掉y轴的标签
        
plt.show()

运行结果如下

matplotlib以对象方式绘制子图

 

上一篇:笔记3 3.matplotlib设置坐标轴


下一篇:python中matplotlib的颜色及线条控制