Python 为什么不创建地物的轴?

Python 为什么不创建地物的轴?,python,matplotlib,axes,Python,Matplotlib,Axes,我尝试不使用pyplot,但使用下面的代码,我只打印一个完全白色的数字 我发现“fig.axes”没有为“fig”创建任何轴,尽管“ax”是一个“matplotlib.axes.\u axes.axes”实例。我想知道为什么 我知道还有其他方法可以获得情节,但我的问题是这里有什么错/遗漏了什么 from matplotlib.figure import Figure from matplotlib.axes import Axes from matplotlib.backends.backen

我尝试不使用pyplot,但使用下面的代码,我只打印一个完全白色的数字

我发现“fig.axes”没有为“fig”创建任何轴,尽管“ax”是一个“matplotlib.axes.\u axes.axes”实例。我想知道为什么

我知道还有其他方法可以获得情节,但我的问题是这里有什么错/遗漏了什么

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_轴或fig.add_子图

在这里这样做,例如

ax = fig.add_subplot(111)  # instead of ax = Axes(fig, [0.1,0.1,0.5,0.7])
为您提供所需的输出

没有理由不使用这些方法。如果您自己实例化轴,则需要调用它

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]) 

您对输出的期望是什么?谢谢@ImportanceOfBeingErnest!那么,如果ax=AxeFig,[…]中的fig没有指定要将轴添加到的图形,那么它的用途是什么呢?需要在图形中创建轴。这就是AxeFig。。确定。但是它不会自动添加到数字中。这都是internat的东西,你通常不需要关心。仅使用figure方法添加轴就足够了。