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()
が呼び出された後、新しい図形が作成されます。これに対処するには、
plt.savefig('tessstttyyy.png', dpi=100)
電話する前に電話するplt.show()
show()
「現在の図を取得」を呼び出して、前の図を保存しておくplt.gcf()
と、いつでもsavefig()
このオブジェクトを呼び出すことができます。Figure
例えば:
fig1 = plt.gcf()
plt.show()
plt.draw()
fig1.savefig('tessstttyyy.png', dpi=100)
コードでは、何もプロットされていない新しい図を保存しているため、「tesssttyyy.png」は空白になっています。