Сюжет Matplotlib не отображается с помощью plt.ion () в сценарии Python, но работает в оболочке Python - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь запустить интерактивный сюжет matplotlib. Из учебника я попробовал этот код:

import matplotlib.pyplot as plt
plt.ion()
plt.plot([1.6, 2.7])

Если я скопирую его в оболочку, все будет нормально, и откроется окно. Но если я попытаюсь выполнить код в скрипте с python3 script.py, то через секунду он вернется обратно в оболочку, не показывая никакого окна.

Похоже, это популярная проблема, но я не нашел решенияв интернете работал.

Я попытался добавить plt.show() и plt.draw(), а также цикл, чтобы программа не сразу выходила. Но тогда в моем документе постоянно прыгает ракета-питон.

Я пробовал разные бэкэнды, но симптомы у всех одинаковы.

Я установил python3, используя homebrew, и matplotlib, используя pip3. Я запускаю macOS 10.14.6.

Любая точка в правильном направлении очень ценится! Спасибо!

Ответы [ 2 ]

1 голос
/ 30 сентября 2019

Попытайтесь добавить это

plt.show(block=True)

Это прекрасно работает для моего случая.

0 голосов
/ 30 сентября 2019

Мне удалось запустить его, добавив plt.pause(0.25) в мой цикл для обновления данных, чтобы мой окончательный код выглядел так:

import matplotlib.pyplot as plt
import random
plt.ion()
plt.plot([0, 1])

for i in range(50):
    print(i)
    plt.scatter(random.random(), random.random())
    plt.pause(0.25)

Я не понимаю, почемуПауза необходима, но, возможно, это помогает кому-то еще, кто борется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...