matplotlib之pyplot模块实现添加子图subplot的解决办法
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看
这篇文章主要为大家详细介绍了matplotlib之pyplot模块实现添加子图subplot的简单示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的雯雯来看看吧!
概述
subplot()
函数向当前图像(figure
)添加一个子图(Axes
),并将该子图设为当前子图。或者将某子图设为当前子图。
pyplot.subplot()
其实是Figure.add_subplot()
的一个封装。
函数的定义签名为:matplotlib.pyplot.subplot(*args, **kwargs)
函数的调用签名为:
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)
函数的参数为:
*args
:定义子图的位置。int
、 (int, int, index)
或 SubplotSpec
, 默认值为(1, 1, 1)
*args
由以下三种定义方式。
- 三个整数构成的三元组
(nrows, ncols, index)
:首先构成一个nrows行和ncols列的网格,然后将子图添加到对应index索引位置。 index从1开始累计,1为左上角,依次向右递增. index也可以是是一个二元组,例如fig.add_subplot(3, 1, (1, 2))。 - 三位整数:每一位数字可以分解为单独的整数,因此,这种方法最好用于子图少于9个的情况(index最大只能为9)。比如plt.subplot(235)等价于plt.subplot(2, 3, 5)。
SubplotSpec
对象:
函数的返回值为:axes.SubplotBase
对象或 Axes
的其他子类。
案例:规则布局
代码如下:
import matplotlib.pyplot as plt
# 添加3行3列子图中的第1个子图,并将其为当前子图
plt.subplot(331)
plt.bar(range(1,4),range(1,4))
# 添加3行3列子图中的第5个子图,并将其为当前子图
plt.subplot(335)
plt.pie([4,5,6])
# 添加3行3列子图中的第9个子图,并将其为当前子图
# 返回值为Axes对象
ax=plt.subplot(339)
# 使用Axes的方法(面向对象模式)绘制点
ax.plot([1],'o')
plt.show()
matplotlib之pyplot模块实现添加子图subplot的使用
pyplot.plot()
源码如下,通过源码可知pyplot
模块的函数底层调用的是Axes
对象的对应方法。
代码如下:
def plot(*args, scalex=True, scaley=True, data=None, **kwargs):
return gca().plot(
*args, scalex=scalex, scaley=scaley,
**({"data": data} if data is not None else {}), **kwargs)
matplotlib之pyplot模块实现添加子图subplot的使用
不规则布局
通常子区函数subplot()
用来完成等分画布的绘图展示的任务,如果在画布上需要进行非等分画布的图形展示时,我们可以多次调用函数subplot()
来完成非等分画布的绘图准备任务。
代码如下:
import matplotlib.pyplot as plt
# 绘制1行2列子图中的第1个子图
plt.subplot(121,facecolor='r')
# 绘制2行2列子图中的第2个子图
plt.subplot(222,facecolor='g')
# 绘制2行2列子图中的第4个子图
plt.subplot(224,facecolor='b')
plt.show()
matplotlib之pyplot模块实现添加子图subplot的使用
代码如下:
import matplotlib.pyplot as plt
# 绘制3行2列子图中的第1个子图
plt.subplot(321,facecolor='r')
# 绘制3行2列子图中的第2个子图
plt.subplot(322,facecolor='r')
# 绘制3行2列子图中的第3个子图
plt.subplot(323,facecolor='r')
# 绘制3行2列子图中的第4个子图
plt.subplot(324,facecolor='r')
# # 绘制3行1列子图中的第3个子图
plt.subplot(313,facecolor='b')
plt.show()
subplot()
函数有一个非常重要的特性:在创建新的子图时,如果新建子图与原有的子图存在重叠的情况,那么会删除原有重叠的子图。例如:
代码如下:
import matplotlib.pyplot as plt
# 绘图时隐含创建subplot(111)
plt.plot([1, 2, 3])
# 创建一个新的子图,由于与原子图重叠,因此删除原有子图
plt.subplot(211)
plt.show()
到此这篇关于matplotlib之pyplot模块实现添加子图subplot的使用的文章就介绍到这了,更多相关matplotlib 添加子图内容请搜索php教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持php教程!
注:关于matplotlib之pyplot模块实现添加子图subplot的简单示例的内容就先介绍到这里,更多相关文章的可以留意