为什么不创建图形的轴?
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])
我尽量不使用 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])