2017-11-14 10 views
0

私はpyplotを使わないようにしていますが、下のコードでは完全に白い数字しか印刷しません。FigureのAxesが作成されないのはなぜですか?

'ax'は 'matplotlib.axes._axes.Axes'インスタンスですが、 'fig'には 'fig'の軸が全く作成されていませんでした。私はなぜ疑問に思っています...

(私はプロットを得るための他の方法があることを知っていますが、私の質問は「何が間違っていますか?

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') 
+0

に比べて本当にただ1つの余分ラインと無利益のですか? – bendl

答えて

1

問題は軸が図形に追加されないことです。通常は、図形のメソッド(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]) 
+0

ありがとうございます@ImportanceOfBeingErnest!それで、ax = Axes(fig、[...])の 'fig'は、軸を追加するFigureを特定しない場合に使われますか? – alububu

+0

Figure内にAxesを作成する必要があります。それはAxes(fig、..)が確認したものです。しかし、それは自動的に図に追加されません。これはすべてあなたが気にする必要のないインターナショナルなものです。ちょうど図のメソッドを使用して軸を追加するだけで十分です。 – ImportanceOfBeingErnest

関連する問題