pyplot.subplot 对比 pyplot.Subplot
pyplot.subplot vs pyplot.Subplot
我一直在通读 gridspec
tutorial on matplotlib.org,我对 pyplot.Subplot(...)(大写 S)函数的用法有点困惑 "A Complex Nested GridSpec using SubplotSpec" 部分:
for i in range(16):
inner_grid = gridspec.GridSpecFromSubplotSpec(
3, 3, subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
a, b = int(i/4)+1, i % 4+1
for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
ax = plt.Subplot(fig, inner_grid[j])
ax.plot(*squiggle_xy(a, b, c, d))
ax.set_xticks([])
ax.set_yticks([])
fig.add_subplot(ax)
它似乎与 standard pyplot.subplot(...) function 不同,因为它采用不同的参数,但我找不到任何关于它的文档 - 我在 pyplot 文档中看不到它,我真的看不到google 因为 google 搜索不区分大小写。我想知道
Subplot(...)
采用什么论点,它 returns 是什么以及它与 subplot(...)
一般有何不同。如果这是一个愚蠢的问题,我们深表歉意;总的来说,我对 matplotlib 和 Python 还是很陌生。
不确定你是否真的需要这个,我查了一下:
pyplot 导入
from matplotlib.axes import Axes, Subplot
来自
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes/_subplots.py
有Subplot
暴露喜欢
class SubplotBase(object)
...
# This is provided for backward compatibility
Subplot = subplot_class_factory()
pyplot.subplot
和 pyplot.add_subplot
似乎是包装它的便利函数。
我建议暂时忽略 Subplot
的存在,并坚持在所有其他 matplotlib 示例中创建子图的方式。
所以在这种情况下,将行 ax = plt.Subplot(fig, inner_grid[j])
替换为 ax = fig.add_subplot(inner_grid[j])
并删除行 fig.add_subplot(ax)
.
示例的那部分看起来像
for i in range(16):
inner_grid = gridspec.GridSpecFromSubplotSpec(
3, 3, subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
a, b = int(i/4)+1, i % 4+1
for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
ax = fig.add_subplot(inner_grid[j])
ax.plot(*squiggle_xy(a, b, c, d))
ax.set_xticks([])
ax.set_yticks([])
我不确定他们为什么要在这里设置一个 Subplot
只是为了之后将其添加到图中;当然代码是有效的,但它在某种程度上与文档其余部分的教学法相矛盾。
我一直在通读 gridspec
tutorial on matplotlib.org,我对 pyplot.Subplot(...)(大写 S)函数的用法有点困惑 "A Complex Nested GridSpec using SubplotSpec" 部分:
for i in range(16):
inner_grid = gridspec.GridSpecFromSubplotSpec(
3, 3, subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
a, b = int(i/4)+1, i % 4+1
for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
ax = plt.Subplot(fig, inner_grid[j])
ax.plot(*squiggle_xy(a, b, c, d))
ax.set_xticks([])
ax.set_yticks([])
fig.add_subplot(ax)
它似乎与 standard pyplot.subplot(...) function 不同,因为它采用不同的参数,但我找不到任何关于它的文档 - 我在 pyplot 文档中看不到它,我真的看不到google 因为 google 搜索不区分大小写。我想知道
Subplot(...)
采用什么论点,它 returns 是什么以及它与 subplot(...)
一般有何不同。如果这是一个愚蠢的问题,我们深表歉意;总的来说,我对 matplotlib 和 Python 还是很陌生。
不确定你是否真的需要这个,我查了一下:
pyplot 导入
from matplotlib.axes import Axes, Subplot
来自
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/axes/_subplots.py
有Subplot
暴露喜欢
class SubplotBase(object)
...
# This is provided for backward compatibility
Subplot = subplot_class_factory()
pyplot.subplot
和 pyplot.add_subplot
似乎是包装它的便利函数。
我建议暂时忽略 Subplot
的存在,并坚持在所有其他 matplotlib 示例中创建子图的方式。
所以在这种情况下,将行 ax = plt.Subplot(fig, inner_grid[j])
替换为 ax = fig.add_subplot(inner_grid[j])
并删除行 fig.add_subplot(ax)
.
示例的那部分看起来像
for i in range(16):
inner_grid = gridspec.GridSpecFromSubplotSpec(
3, 3, subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
a, b = int(i/4)+1, i % 4+1
for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
ax = fig.add_subplot(inner_grid[j])
ax.plot(*squiggle_xy(a, b, c, d))
ax.set_xticks([])
ax.set_yticks([])
我不确定他们为什么要在这里设置一个 Subplot
只是为了之后将其添加到图中;当然代码是有效的,但它在某种程度上与文档其余部分的教学法相矛盾。