Динамическое обновление графика в ноутбуке iPython

Как упоминалось в этом вопросе , я пытаюсь обновить график динамически в ноутбуке iPython (в одной ячейке). Разница в том, что я не хочу строить новые строки, но мои x_data и y_data растут на каждой итерации некоторого цикла.

Я бы хотел:

import numpy as np import time plt.axis([0, 10, 0, 100]) # supoose I know what the limits are going to be plt.ion() plt.show() x = [] y = [] for i in range(10): x = np.append(x, i) y = np.append(y, i**2) # update the plot so that it shows y as a function of x time.sleep(0.5) 

но я хочу, чтобы у сюжета была легенда, и если я это сделаю

 from IPython import display import time import numpy as np plt.axis([0, 10, 0, 100]) # supoose I know what the limits are going to be plt.ion() plt.show() x = [] y = [] for i in range(10): x = np.append(x, i) y = np.append(y, i**2) plt.plot(x, y, label="test") display.clear_output(wait=True) display.display(plt.gcf()) time.sleep(0.3) plt.legend() 

Я заканчиваю легендой, которая содержит 10 предметов. Если я положил plt.legend() внутри цикла, легенда растет на каждой итерации … Любое решение?

One Solution collect form web for “Динамическое обновление графика в ноутбуке iPython”

В настоящее время вы создаете новый объект Axes за каждый раз, когда вы plt.plot в цикле.

Итак, если вы очистите текущую ось ( plt.gca().cla() ), прежде чем использовать plt.plot и поместите легенду в цикл, она работает без легенды, растущей каждый раз:

 import numpy as np import time from IPython import display x = [] y = [] for i in range(10): x = np.append(x, i) y = np.append(y, i**2) plt.gca().cla() plt.plot(x,y,label='test') plt.legend() display.clear_output(wait=True) display.display(plt.gcf()) time.sleep(0.5) 

EDIT: Как заметил @tcaswell в комментариях, использование команды %matplotlib notebook magic magic дает вам живую фигуру, которая может обновляться и перерисовываться.

  • Как установить тики по фиксированной позиции, matplotlib
  • не удается установить matplotlib с помощью pip
  • Matplotlib: отключить полномочия десяти в лог-графике
  • изменение диапазона x по умолчанию в гистограмме matplotlib
  • matplotlib legend: Включая маркеры и строки из двух разных графиков в одной строке
  • Вставить Matplotlib в PyQt с несколькими сюжетами
  • Pandas и Matplotlib - fill_between () vs datetime64
  • Редактирование форматирования даты меток x-axis tick в matplotlib
  • Равномерное расстояние с Matplotlib и TeX
  • Как добавить один colobar, который будет отображать данные из двух разных подплат
  • Python Tkinter Embed Matplotlib в графическом интерфейсе
  •  
    Interesting Posts for Van-Lav

    Причины переименования свойства в _property

    Поиск N ближайших номеров

    Создание сигнатуры AASA S3 CORS с Python

    Ошибка Numpy с помощью python-dbg (неопределенный символ: Py_InitModule4_64)

    Django сменить пароль, super (type, obj): obj должен быть экземпляром или подтипом типа

    многопроцессорность в консоли IPython на компьютере Windows – если требование __name_

    большой объем данных во многих текстовых файлах – как обрабатывать?

    100% использование ЦП с регулярным выражением в зависимости от длины ввода

    Ошибка ключа Python Отсутствует Dict в вызове API LinkedIn – как вместо этого вызывать значение по умолчанию?

    Проверьте, имеет ли пользователь разрешение в пирамиде (пилоны 2)?

    набор изменяется, а затем, кажется, волшебно возвращается

    проверить выход из CalledProcessError

    Каковы преимущества типа намека на Python?

    Отправка электронной почты через gmail и python

    Создание базы данных с помощью SQLAlchemy in Flask

    Python - лучший язык программирования в мире.