为什么matplotlib子图以1开头

时间:2015-12-28 20:24:33

标签: python matplotlib

使用matplotlib创建子图时,需要从1开始,而大多数其他python事件从零开始。所以要创建第一个子图(左上角)

ax = fig.add_subplot(3,4,1)

我希望0成为第一个子剧情

ax = fig.add_subplot(3,4,0)

我已经看到了“我们从matlab得到这个”的解释,但这似乎是一个特别不满意的答案。

1 个答案:

答案 0 :(得分:2)

答案确实是:"它意味着matlab兼容性"。在快捷方式整数表示法(subplot(231)而不是subplot(2,3,1))方面有一个小优势。您不能以这种方式表达基于0的系统而不使用字符串。但是,这种快捷方式通常是一个坏主意,并且只能在可读性不是一个问题的交互式场景中使用。

正如@Cong Ma所提到的,在大多数情况下,您使用subplots并索引2D数组而不是matlab风格的数字系统。这是一种全方位的更好的方法。

例如:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=2, ncols=3)
axes[0, 0].plot(range(10))

plt.show()

它不完全相同,因为它还会添加所有子图,但您可以随时隐藏您不想看到的那些(ax.axis('off')ax.set(visible=False) )。