2015-10-29 3 views
2

Я новичок в matplotlib.pyplot. У меня проблемы с функцией show(), которая не блокируется. Я взял приложение python у кого-то, кто ушел, и, похоже, я помню, как это работало на его (IT-исправленном) ПК. Вот код ...Python, matplotlib pyplot show() не блокирует

import matplotlib.pyplot as plt 

plt.title("Molding X Error") 
plt.xlabel("X") 
plt.ylabel("X Error") 
plt.plot(... details that work and not the problem ...) 
plt.show(block=True) 

plt.title("Molding Y Error") 
plt.xlabel("Y") 
plt.ylabel("Y Error")   
plt.plot(... details that work and not the problem ...) 
plt.show(block=True) 

На других ребят ПК, первое шоу() будет отображаться соответствующим образом. После отклонения первого, второго будет отображаться.

Я запускаю его, и он не только не останавливается на первом показе(), он объединяет данные из первого и второго с заголовком и метками со второго.

Я прохожу через отладчик, и первый показывает, но на второй шаг видно тот же результат.

Windows 7 Pro 64-bit. Python2.7.10, Anaconda 2.3.0, который содержит (по-видимому) matplotlib1.4.3 Примечание: я прочитал «(python) matplotlib pyplot show() .. блокирование или нет?» где он был с 2011 года и имел в виду решение matplotlib1.0.1.

+0

Обновление: Я изменил код, чтобы включить plt.figure (1) и plt.figure (2) перед каждым вызовом plt.title ("..."), и оба отображаются отдельно, но оба сразу. Это не блокирует, но, вероятно, это будет приемлемо для этой 2-х графической ситуации. Существует еще один из 14 графиков, поэтому решение, почему это не блокировалось, все равно будет оценено. – scotlandhoy

+0

'plt.show' должен блокироваться по умолчанию. Ваш пример - весь код? Найдите что-то вроде 'plt.ion()'. – MaxNoe

+0

Это еще не весь код. Приложение содержит несколько файлов и классов, ... не тонну, а довольно немного кода. Во всяком случае, я выполнил поиск по всему коду для «иона», и он нигде не находится в коде. Небольшая дополнительная заметка, «block = True» в вызове plt.show(), ... я добавил после того, как увидел ее в другой публикации где-то ... это не повлияло на проблему. – scotlandhoy

ответ

0

http://matplotlib.org/api/pyplot_api.html?highlight=plot#matplotlib.pyplot.show

В не интерактивном режиме, отображать все фигуры и блок до тех пор, пока показатели были закрыты; в интерактивном режиме он не имеет эффекта, если только цифры не были созданы до перехода от неинтерактивного к интерактивному режиму (не рекомендуется). В этом случае он отображает цифры, но не блокирует. Один экспериментальный аргумент ключевого слова, block, может быть установлен в значение True или False, чтобы переопределить описанное выше поведение блокировки.

+0

virgula24, я видел это ... «блокировать до тех пор, пока цифры не будут закрыты» ... это то, что ожидалось и было желательно. (Также, как я сказал в верхней части сообщения, работал на ПК предыдущих лиц.) Я думаю, что это может быть какая-то настройка среды, установка пакета для python? – scotlandhoy

+0

Я не специалист по python, но, возможно, выкопайте исходный код matlib для этой конкретной функции или просто переименуете, что люди pc – virgula24

+0

Я попытался получить дополнительную документацию по этим функциям matplotlib.pyplot. Я нашел страницы руководства, но информация очень краткая. – scotlandhoy

Смежные вопросы