为什么很多示例在Matplotlib / pyplot / python中使用“fig,ax = plt.subplots()”



Answers

这里只是一个补充。

下面的问题是,如果我想在图中有更多的子图,该怎么办?

正如文档中提到的,我们可以使用fig = plt.subplots(nrows=2, ncols=2) )在一个图形对象中设置一组带有网格(2,2)的子图。

然后我们知道, fig, ax = plt.subplots()返回一个元组,首先尝试fig, ax1, ax2, ax3, ax4 = plt.subplots(nrows=2, ncols=2)

ValueError: not enough values to unpack (expected 4, got 2)

它引发了一个错误,但不用担心,因为我们现在看到plt.subplots()实际上会返回一个包含两个元素的元组。 第一个必须是数字对象,另一个应该是一组子对象。

所以让我们再试一次:

fig, [[ax1, ax2], [ax3, ax4]] = plt.subplots(nrows=2, ncols=2)

并检查类型:

type(fig) #<class 'matplotlib.figure.Figure'>
type(ax1) #<class 'matplotlib.axes._subplots.AxesSubplot'>

当然,如果你使用参数(nrows = 1,ncols = 4),那么格式应该是:

fig, [ax1, ax2, ax3, ax4] = plt.subplots(nrows=1, ncols=4)

所以请记住保持列表的结构与我们在图中设置的子图网格相同。

希望这会对你有所帮助。

Question

通过学习示例,我正在学习使用matplotlib ,并且在创建单个绘图之前,很多示例似乎都包含类似以下的行......

fig, ax = plt.subplots()

这里有些例子...

我看到这个函数使用了很多,尽管这个例子只是试图创建一个图表。 还有其他的优势吗? subplots()的官方演示在创建单个图表时也使用f, ax = subplots ,并且仅在此之后引用ax。 这是他们使用的代码。

# Just a figure and one subplot
f, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')



Related