为什么不创建图形的轴?

Why a figure's Axes is not created?

我尽量不使用 pyplot,但使用下面的代码我只打印了一个全白的图形。

我发现 'fig.axes' 根本没有为 'fig' 创建轴,尽管 'ax' 是一个 'matplotlib.axes._axes.Axes' 实例。我想知道为什么...

(我知道还有其他方法可以获取剧情,但我的问题是"what is wrong/missing here?")。

from matplotlib.figure import Figure
from matplotlib.axes import Axes

from matplotlib.backends.backend_agg import FigureCanvasAgg
from numpy import random 

data = [random.randn(5) for i in range(5)]

fig = Figure(figsize = (20,10))
canvas = FigureCanvasAgg(fig)

ax = Axes(fig, [0.1,0.1,0.5,0.7])

ax.pcolormesh(data)

canvas.print_figure('test')

问题是轴没有添加到图中。通常你会通过任何图形的方法添加一个轴,比如 fig.add_axes()fig.add_subplot()

在这里这样做,例如

ax = fig.add_subplot(111)  # instead of ax = Axes(fig, [0.1,0.1,0.5,0.7])

为您提供所需的输出。

真的没有理由不使用这些方法。如果你自己实例化Axes,你需要调用它

ax = Axes(fig, [0.1,0.1,0.5,0.7])
fig.add_axes(ax)

但这实际上只是多了一行,与

相比没有任何好处
ax = fig.add_axes([0.1,0.1,0.5,0.7])