2012-10-15 64 views
8

我一直在寻找一种方法,可以在绘图创建后选择哪些系列在图上可见。在matplotlib图中交互选择系列

我需要这个,因为我经常有很多系列的情节。它们太多而无法同时进行绘图,我需要快速交互式地选择哪些系列是可见的。理想情况下,会出现一个窗口,其中包含剧情和复选框中的系列列表,其中带有选中复选框的系列可见。

有没有人知道这是否已经在某个地方实施?如果不是,那么有人可以指导我怎么做我自己?

谢谢!

奥马尔

回答

8

这一切都取决于你多大的努力愿意做什么的确切的要求是,但你可以打赌它已经在某处执行:-)

如果目标主要是不混乱的形象,使用内置功能可能就足够了;你可以在matplotlib实例库找到相关代码:

如果你真的想有一个用户界面,让您可以通过限制图的量保护性能/数据,您通常会使用GUI工具箱,如GTK,QT或WX。看看这里的一些文章和示例代码:

2

与复选框列表将被罚款,如果你有几个地块或者更少,但更多的地块弹出菜单可能会更好。但我不确定是否可以使用matplotlib。

我实现这一次的方式是使用滑块从列表中选择绘图 - 基本上,您可以使用滑块设置应显示的系列的索引。每个数据集有几百个系列,因此这是快速浏览它们的好方法。

我设置它们的代码是大致是这样的:

fig = pyplot.figure() 
slax = self.fig.add_axes((0.1,0.05,0.35,0.05)) 
sl = matplotlib.widgets.Slider(slax, "Trace #", 0, len(plotlist), valinit=0.0) 
def update_trace(): 
    ax.clear() 
    tracenum = int(np.floor(sl.val)) 
    ax.plot(plotlist[tracenum]) 
    fig.canvas.draw() 
sl.on_changed(update_trace) 
ax = self.fig.add_axes((0.6, 0.2, 0.35, 0.7)) 
fig.add_subplot(axes=self.traceax) 
update_trace() 

下面是一个例子:

Plot image

相关问题