Можно ли иметь несколько окон PyPlot? Или я ограничен участками? - PullRequest
26 голосов
/ 13 мая 2011

Я не уверен, как сформулировать мой вопрос более четко. В основном, ограничен ли PyPlot одним экземпляром / окном? Любой взлом или обходной путь, который я пробую, либо приводит к зависанию моей программы, либо к тому, что второе окно pyplot ставится в очередь до тех пор, пока первое окно не будет закрыто.

Ответы [ 3 ]

53 голосов
/ 13 мая 2011

Конечно, просто откройте новую фигуру:

import matplotlib.pyplot as plt

plt.plot(range(10))

plt.figure()
plt.plot(range(10), 'ro-')

plt.figure(), plt.plot(...)

plt.show() # only do this once, at the end

Если вы запускаете это в интерпретаторе Python по умолчанию, это не сработает, так как каждая фигура должна входить в основной цикл графического интерфейса. Если вы хотите запускать вещи в интерактивной оболочке, загляните в IPython. Если вы просто запустите это нормально (т.е. поместите его в файл и вызовете python filename.py), то все будет работать нормально.

6 голосов
/ 17 августа 2017

Используйте plt.figure() и используйте определенное число, чтобы окно фиксировалось:

plt.figure(200)
plt.plot(x)
plt.show()

и для другого сюжета используйте другое число:

plt.figure(300)
plt.plot(y)
plt.show()
0 голосов
/ 28 апреля 2018

Ответ на ваш вопрос - нет.Вы можете иметь столько окон, сколько хотите.Во-первых, просто наберите

plt.figure(n) #n must be a different integer for every window

для каждой новой цифры, которую вы хотите.Во-вторых, пишите

plt.show()

только один раз (!) В конце всего, что вы хотите построить.Вот пример для двух гистограмм:

plt.figure(1)
plt.hist(dataset1)
plt.figure(2)
plt.hist(dataset2)
plt.show()
...