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()
里的参数是什么意思呢?
7 个回答
52
Constantin的回答非常准确,但为了让大家更明白,这种行为是从Matlab继承过来的。
Matlab的这种行为可以在图形设置 - 在一个图形中显示多个图表的文档中找到解释。
subplot(m,n,i)会把图形窗口分成一个m行n列的小图表矩阵,并选择第i个小图表作为当前绘制的地方。图表的编号是从图形窗口的第一行开始,然后是第二行,以此类推。
625
我觉得用下面这张图片来解释会更好:
要初始化上面的内容,可以输入:
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()
610
这些是子图网格的参数,用一个整数来表示。比如,“111”就表示“1行1列的网格,第一张子图”,而“234”则表示“2行3列的网格,第四张子图”。
另外一种写法是 add_subplot(111)
可以写成 add_subplot(1, 1, 1)
。