7

「あなたの答えがすでにあるかもしれない質問」を閲覧しましたが、もしそうなら... 私はそれを理解していませんでした.

私はできる限り排除しようとし、問題を次のコードに単純化しました(私の謝罪-すべての40のnumpy配列を取得するよりエレガントな方法があると確信していますが、これが私が思いついたものです頭をぶつけた後....):

import numpy
import matplotlib.pyplot as plt

x=numpy.zeros((500,256))
x+=40
plt.title("Title")
plt.xlabel("Label")
plt.ylabel("Label")
plt.imshow(x,vmin=37.5,vmax=42.5, cmap='spectral')

#save the figure
filename="/xxx/yyy/matplotlibtest.jpg"
plt.savefig(filename)
plt.show()
plt.close()

plt.savefig() は、ラベル、軸、および図のない非常に優れた画像を返します (つまり、長方形は空白です)

plt.show() は、上記のすべてを、本来あるべきように、軸の間にある素敵な緑色の長方形で表示します。この Figure を同じディレクトリに手動で保存し、期待どおりの結果 (つまり、軸、ラベル、緑色の四角形) を得ることができます。

ここ(および他の場所)のいくつかの質問と回答は、呼び出し順序が問題である可能性があることを暗示しているように見えたため、show()なしで、またはshow()呼び出しを2番目にすることでこれを試しました。

このコードの他の図 (同じデータのヒストグラム) を jpg として保存したので、このコンピューターで jpg として保存できることがわかります。

savefig で何が間違っているのかわかりません - 何か提案はありますか?

ありがとう!

4

1 に答える 1

7

追加することにより:

import matplotlib
matplotlib.use('TkAgg')

私の電話の前に

import matplotlib.pyplot as plt

私はすべてを楽しく機能させることができます。

(バックエンドについてはまだはっきりとわかりません!)

于 2012-11-01T00:33:08.023 に答える