Рисунок не заполняет холст в интерактивном сюжете с Matplotlib в блокноте Jupyter - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь сделать что-то подобное, чтобы поближе взглянуть на мои данные:

Каков в настоящее время правильный способ динамического обновления графиков в Jupyter / i Python?

Или здесь: https://nbviewer.jupyter.org/gist/branning/c8e63ce81be0391260b1

Это мой код:

%matplotlib notebook
from matplotlib import pyplot as plt
import pandas as pd

START = DATA.index[0]
END = DATA.index[-1]
DT = "6H"

DATERANGE = pd.date_range(START, END, freq=DT)

fig, ax = plt.subplots(figsize(8, 6))
since = DATERANGE[0]
for till in DATERANGE[1:]:
    data = DATA['SOME_SERIES'].loc[since:till]
    if len(data) > 0:
        if ax.lines:
            ax.lines[0].set_xdata(data.index)
            ax.lines[0].set_ydata(data)
        else:
            ax.plot(data.index, data)
        upper, lower = data.min()*0.9, data.max()*1.1
        if not (isnan(upper) or isnan(lower)):
            ax.set_ylim((data.min()*0.9, data.max()*1.1))
        ax.set_xlim((data.index[0], data.index[-1]))
        fig.canvas.draw()
    time.sleep(2)
    since = till

Моя проблема в том, что во время обновления сюжета он не ' не заполнить холст (надеюсь, я получил терминологию прямо здесь), но только около четверти размера. Выглядит это так:

Участок во время цикла

Только после окончания l oop график становится больше:

Участок после looping

Это также верно для точного кода по ссылкам выше.

Я обновил jupyter и matplotlib, я попробовал fig.tight_layout (), я также попробовал% matplotlib notebook % matplotlib nbagg, но это тоже не сработало ..

У кого-нибудь есть решение для этого?

Спасибо, Филипп

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