Интерактивная цифра с OO Matplotlib

Использование Matplotlib через API OO достаточно просто для неинтерактивного бэкэнд:

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas from matplotlib.figure import Figure fig = Figure() canvas = FigureCanvas(fig) ax = fig.add_subplot(1,1,1) ax.plot([1,2,3]) canvas.print_figure('test.png') 

Но если я попытаюсь повторить что-то подобное с интерактивными бэкэндами, я потерплю неудачу (я даже не могу получить интерактивную фигуру в первую очередь). Есть ли у кого-нибудь примеры использования Matplotlib через OO API для создания интерактивных фигур?

One Solution collect form web for “Интерактивная цифра с OO Matplotlib”

Ну, вам нужно использовать бэкэнд, поддерживающий взаимодействие!

backend_agg не является интерактивным. backend_tkagg (или один из других подобных бэкэндов).

Когда вы используете интерактивный бэкэнд, вам нужно сделать что-то более похожее на это:

 import matplotlib.backends.backend_tkagg as backend from matplotlib.figure import Figure manager = backend.new_figure_manager(0) fig = manager.canvas.figure ax = fig.add_subplot(1,1,1) ax.plot([1,2,3]) fig.show() backend.show() 

Честно говоря, это не способ использовать интерфейс oo. Если вам понадобятся интерактивные сюжеты, сделайте еще что-нибудь подобное:

 import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1,1,1) ax.plot([1,2,3]) plt.show() 

Вы все еще используете интерфейс oo, вы просто позволяете ручке pyplot создавать диспетчер фигур и вводить gui mainloop для вас.

  • Изменение положения стенок сетки на рисунке mplot3d
  • Уменьшить левый и правый поля на графике matplotlib
  • Matplotlib: график рассеяния - размер символа на основе расстояния между пикселями
  • VTK в Maplotlib с помощью Numpy
  • Заполните между x и базовой базой x в Matplotlib
  • установить соотношение сторон 3D-графика matplotlib?
  • Как выводить график из Matplotlib в шаблонах Django?
  • Интуитивная интерполяция между неравномерно разнесенными точками
  • Python - лучший язык программирования в мире.