在Matplotlib中,参数在fig.add_subplot(111)中意味着什么?
有时我遇到这样的代码:
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 4, 9, 16, 25] fig = plt.figure() fig.add_subplot(111) plt.scatter(x, y) plt.show()
其中产生:
我一直在疯狂地阅读文档,但是我找不到111
的解释。 有时我看到一个212
。
fig.add_subplot()
意思是什么意思?
这些是将子网格参数编码为单个整数。 例如,“111”表示“1×1网格,第一个子图”,“234”表示“2×3网格,第四个子图”。
add_subplot(111)
替代forms是add_subplot(111)
add_subplot(1, 1, 1)
。
我认为这可以通过下面的图片来解释:
要初始化上述内容,可以input:
import matplotlib.pyplot as plt fig = plt.figure() fig.add_subplot(221) #top left fig.add_subplot(222) #top right fig.add_subplot(223) #bottom left fig.add_subplot(224) #bottom right plt.show()
编辑:一些额外的信息
以下组合产生子图的不对称排列。
subplot(2,2,[1 3]) subplot(2,2,2) subplot(2,2,4)
你也可以使用冒号运算符来指定多个位置,如果它们是顺序的。
subplot(2,2,1:2) subplot(2,2,3) subplot(2,2,4)
在这里引用
康斯坦丁的答案是现货,但对于更多的背景,这种行为是从Matlabinheritance。
Matlab的行为在graphics设置 – 显示 Matlab文档中的每个图的多个图部分中解释。
子图(m,n,i)将数字窗口分解为小的子图的m×nmatrix,并为当前图select它的子图。 图中的数字沿着数字窗口的第一行,然后是第二行,依此类推。
我的解决scheme是
fig = plt.figure() fig.add_subplot(1, 2, 1) #top and bottom left fig.add_subplot(2, 2, 2) #top right fig.add_subplot(2, 2, 4) #bottom right plt.show()