У меня проблемы с одновременным рисованием двух фигур, которые не показаны на одном графике. Но согласно документации, я написал код и показывает только тот рисунок. Я думаю, что я потерял что-то важное. Может ли кто-нибудь помочь мне разобраться? Благодарю. (* Tlist_first *, используемый в коде, представляет собой список данных.)
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
источник
источник
3.6.6
с Matplotlib2.2.2
(это была последняя версия на момент написания статьи); решение выше работает для меня. Ваша проблема должна быть связана с чем-то другим, например, с используемой серверной частью . Бегуmatplotlib.get_backend()
, получаю'Qt5Agg'
figure=g
второму тоже пришлось добавитьplt.hist()
.NameError: name 'raw_input' is not defined
input()
. См. Последнее примечание в сообщенииЗвонить следует
plt.show()
только в конце после создания всех сюжетов.источник
show()
один раз, я не смогу позвонить снова, если я хочу снова показать сюжет, мне придется заново его воспроизвести?У меня была такая же проблема.
Сделал:
f1 = plt.figure(1) # code for figure 1 # don't write 'plt.show()' here f2 = plt.figure(2) # code for figure 2 plt.show()
Пишите plt.show () только один раз после последней цифры. Работал у меня.
источник
В качестве альтернативы я бы посоветовал включить интерактив в начале, а в самом последнем сюжете - выключить. Все появятся, но не исчезнут, так как ваша программа останется, пока вы не закроете цифры.
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()
источник