Почему Matplotlib Draw не работает в Pycharm? - PullRequest
1 голос
/ 30 мая 2019

Я хочу обновлять график каждый раз, когда цикл повторяется. Из моего поиска в Google лучше всего использовать plt.draw() в цикле, а не модуль анимации matplotlib, потому что я хочу, чтобы он обновлялся только тогда, когда новые данные становятся доступными.

Однако plt.draw() не будет работать в pycharm, даже если он работает в том же интерпретаторе , когда я запускаю через внешнюю оболочку. Я даже не получаю пустое окно matplotlib. Я пробовал с и без интерактивного режима.

Matplotlib версия 3.1.0

Python версия 3.6.5

Pycharm 2018.1.1

Ниже приведен код из другого поста, который работает как положено вне pycharm, но в pycharm я просто получаю код выхода 0, даже не ошибку.

import matplotlib.pyplot as plt
import numpy as np
# import matplotlib
#
# print(matplotlib.get_backend())


for i in range(50):
    y = np.random.random([10,1])
    plt.plot(y)
    plt.draw()
    plt.pause(0.0001)
    plt.clf()

Ожидайте последовательность случайных графов, не получите ничего, кроме кода выхода 0

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Вы можете использовать show() с блокировкой, установленной на false.

for i in range(50):
    y = np.random.random([10,1])
    plt.plot(y)
    if i <1:
        plt.show(block=False)
    plt.draw()
    plt.pause(0.0001)
    plt.clf()
0 голосов
/ 30 мая 2019

Вам не нужно использовать plt.draw().Попробуйте этот код:

import matplotlib.pyplot as plt
import numpy as np

for i in range(10):
    y = np.random.random([10, 1])
    plt.plot(y, 'o')
    plt.pause(3)
    plt.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...