Savefig は空白の画像を出力します 質問する

Savefig は空白の画像を出力します 質問する

matplotlib を使用して作成したプロットを保存しようとしていますが、画像が空白で保存されます。

これが私のコードです:

plt.subplot(121)
plt.imshow(dataStack, cmap=mpl.cm.bone)

plt.subplot(122)
y = copy.deepcopy(tumorStack)
y = np.ma.masked_where(y == 0, y)

plt.imshow(dataStack, cmap=mpl.cm.bone)
plt.imshow(y, cmap=mpl.cm.jet_r, interpolation='nearest')

if T0 is not None:
    plt.subplot(123)
    plt.imshow(T0, cmap=mpl.cm.bone)

    #plt.subplot(124)
    #Autozoom

#else:
    #plt.subplot(124)
    #Autozoom

plt.show()
plt.draw()
plt.savefig('tessstttyyy.png', dpi=100)

そして、tessstttyyy.png は空白です (.jpg でも試しました)

ベストアンサー1

まず、 のときに何が起こるでしょうかT0 is not None? それをテストし、 に渡す値を調整しますplt.subplot()。たとえば、値 131、132、133 を試すか、T0存在するかどうかに依存する値を試します。

2番目に、plt.show()が呼び出された後、新しい図形が作成されます。これに対処するには、

  1. plt.savefig('tessstttyyy.png', dpi=100)電話する前に電話するplt.show()

  2. show()「現在の図を取得」を呼び出して、前の図を保存しておくplt.gcf()と、いつでもsavefig()このオブジェクトを呼び出すことができます。Figure

例えば:

fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)

コードでは、何もプロットされていない新しい図を保存しているため、「tesssttyyy.png」は空白になっています。

おすすめ記事