与OO Matplotlib的交互式人物

ast*_*rog 7 python matplotlib

通过OO API使用Matplotlib对于非交互式后端来说非常简单:

 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')
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试用交互式后端重复类似的东西,我就会失败(我甚至无法让交互式人物出现在第一位).有没有人有任何通过OO API使用Matplotlib来创建交互式数据的例子?

Joe*_*ton 8

好吧,你需要使用支持交互的后端!

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()
Run Code Online (Sandbox Code Playgroud)

但老实说,这不是使用oo界面的方法.如果您需要交互式图,请执行以下操作:

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

你还在使用oo界面,你只需要pyplot处理创建图形管理器并为你输入gui mainloop.