Matplotlib (pyplot) savefig sorties d'image vide
Je suis en train d'enregistrer des parcelles-je faire à l'aide de matplotlib; cependant, les images sont d'économie vide.
Voici mon 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)
Et tessstttyyy.png est vide (aussi essayé avec .jpg)
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, ce qui se passe quand
T0 is not None
? Je voudrais tester ça, alors je ajuster les valeurs que je passe àplt.subplot()
; peut-être essayer valeurs 131, 132 et 133, ou des valeurs qui dépendent de savoir si ou de ne pasT0
existe.Deuxième, après
plt.show()
est appelé, une nouvelle figure est créé. Pour faire face à cela, vous pouvezAppel
plt.savefig('tessstttyyy.png', dpi=100)
avant d'appelerplt.show()
Enregistrer la figure, avant de vous
show()
en appelantplt.gcf()
permettant d'obtenir le chiffre actuel", alors vous pouvez appelersavefig()
sur ceFigure
objet à tout moment.Par exemple:
Dans votre code, 'tesssttyyy.png' est vide parce que c'est l'enregistrement de la nouvelle figure, à qui rien n'a été tracée.
jupyter
ordinateurs portables avec%matplotlib inline
activé: lesavefig
appel doit être dans la même cellule que le tracé de la méthode de création.plt.show()
génère une nouvelle image. En effet, cela a résolu le problème.plt.show()
devrait venir aprèsplt.savefig()
plt.show()
efface toute chose, de sorte que rien par la suite va se passer sur un nouveau vide à la figure.me donner plus de détail exemple: