Comment afficher deux chiffres à l'aide de matplotlib?
J'ai quelques problèmes pour dessiner deux personnages en même temps, et non pas sur une seule parcelle. Mais, selon la documentation, j'ai écrit le code et seulement la figure d'une montre. Je pense que peut-être j'ai perdu quelque chose d'important. Quelqu'un pourrait-il m'aider à comprendre? Merci. (Le *tlist_first* utilisé dans le code d'une liste de données.)
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()
Vous devez vous connecter pour publier un commentaire.
Subsidiairement, à l'appel de
plt.show()
à la fin du script, vous pouvez également contrôler chaque chiffre séparément à faire:Dans ce cas, vous devez appeler
raw_input
de garder les chiffres vivant.De cette façon, vous pouvez sélectionner de manière dynamique ce qui chiffres que vous voulez montrer
Remarque:
raw_input()
a été renomméinput()
en Python 33.6.6
avec Matplotlib2.2.2
(qui est la version la plus récente au moment de l'écriture); la solution ci-dessus fonctionne pour moi. Votre problème doit venir de quelque chose d'autre, par exemple le backend utilisés. L'exécution dematplotlib.get_backend()
, je reçois'Qt5Agg'
figure=g
à la deuxièmeplt.hist()
.Vous devriez appeler
plt.show()
seulement à la fin, après la création de toutes les parcelles.show()
une fois, je ne peux pas l'appeler de nouveau, si je veux voir le tracé de nouveau, je dois replot il de nouveau?J'ai eu ce même problème.
N':
# ne pas écrire " plt.show()' ici
L'écriture de " plt.show()' une seule fois, après le dernier chiffre.
A travaillé pour moi.
Sinon, je vous suggère de tournage interactif sur au début et à la toute dernière parcelle, de l'éteindre. Tout va se présenter, mais ils ne disparaîtront pas tant que votre programme va rester jusqu'à la fermeture de la les chiffres.