使用matplotlib创建子图时,需要从1
开始,而大多数其他python事件从零开始。所以要创建第一个子图(左上角)
ax = fig.add_subplot(3,4,1)
我希望0
成为第一个子剧情
ax = fig.add_subplot(3,4,0)
我已经看到了“我们从matlab得到这个”的解释,但这似乎是一个特别不满意的答案。
答案 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)
)。