Ich versuche, Plots zu speichern, die ich mit matplotlib erstellt habe. Die Bilder werden jedoch leer gespeichert.
Hier ist mein Code:
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)
Und tessstttyyy.png ist leer (auch mit .jpg versucht)
quelle
jupyter
bei%matplotlib inline
aktivierten Notebooks auf : Dersavefig
Aufruf muss sich in derselben Zelle befinden wie die Plot-Erstellungsmethode.plt.show()
erzeugt ein neues Bild. In der Tat löste dies das Problem.plt.show()
sollte danach kommenplt.savefig()
Erklärung:
plt.show()
Löscht das Ganze, sodass danach alles auf einer neuen leeren Figur passiertquelle
plt.show()
löscht das Ganze, so dass danach alles auf einer neuen leeren Figur passiert.Ändern Sie die Reihenfolge der Funktionen behoben das Problem für mich:
wie folgt:
quelle
Das Aufrufen von savefig vor show () hat bei mir funktioniert.
quelle
Lassen Sie mich ein detaillierteres Beispiel geben:
quelle