Tengo algunos problemas al dibujar dos figuras al mismo tiempo, que no se muestran en un solo diagrama. Pero de acuerdo con la documentación, escribí el código y solo se muestra la figura uno. Creo que tal vez perdí algo importante. ¿Alguien podría ayudarme a averiguarlo? Gracias. (El * tlist_first * usado en el código es una lista de datos).
plt.figure(1)
plt.hist(tlist_first, bins=2000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')
plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')
plt.axvline(x = 30, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min')
plt.axvline(x = 60, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour')
plt.legend()
plt.xlim(0,120)
plt.ylim(0,1)
plt.show()
plt.close() ### not working either with this line or without it
plt.figure(2)
plt.hist(tlist_first, bins=2000000, normed = True, histtype ="step", cumulative = True, color = 'g',label = 'first answer')
plt.ylabel('Percentage of answered questions')
plt.xlabel('Minutes elapsed after questions are posted')
plt.axvline(x = 240, ymin = 0, ymax = 1, color = 'r', linestyle = '--', label = '30 min')
plt.axvline(x = 1440, ymin = 0, ymax = 1, color = 'c', linestyle = '--', label = '1 hour')
plt.legend(loc= 4)
plt.xlim(0,2640)
plt.ylim(0,1)
plt.show()
python
matplotlib
AnneS
fuente
fuente
3.6.6
con Matplotlib2.2.2
(que era la última versión en el momento de escribir este artículo); la solución anterior funciona para mí. Su problema debe provenir de otra cosa, por ejemplo, el backend utilizado. Corriendomatplotlib.get_backend()
, obtengo'Qt5Agg'
figure=g
al segundoplt.hist()
.NameError: name 'raw_input' is not defined
input()
. Ver última nota en la publicaciónDebe llamar
plt.show()
solo al final después de crear todas las parcelas.fuente
show()
una vez, no puedo volver a llamar, si quiero mostrar la trama nuevamente, ¿tengo que volver a escribirla?Yo tuve el mísmo problema.
Hizo:
f1 = plt.figure(1) # code for figure 1 # don't write 'plt.show()' here f2 = plt.figure(2) # code for figure 2 plt.show()
Escriba 'plt.show ()' solo una vez, después de la última cifra. Trabajó para mi.
fuente
Alternativamente, sugeriría activar interactivo al principio y en la última trama, apagarlo. Todos aparecerán, pero no desaparecerán, ya que su programa permanecerá activo hasta que cierre las cifras.
import matplotlib.pyplot as plt from matplotlib import interactive plt.figure(1) ... code to make figure (1) interactive(True) plt.show() plt.figure(2) ... code to make figure (2) plt.show() plt.figure(3) ... code to make figure (3) interactive(False) plt.show()
fuente