我一直在寻找一种方法,可以在绘图创建后选择哪些系列在图上可见。在matplotlib图中交互选择系列
我需要这个,因为我经常有很多系列的情节。它们太多而无法同时进行绘图,我需要快速交互式地选择哪些系列是可见的。理想情况下,会出现一个窗口,其中包含剧情和复选框中的系列列表,其中带有选中复选框的系列可见。
有没有人知道这是否已经在某个地方实施?如果不是,那么有人可以指导我怎么做我自己?
谢谢!
奥马尔
我一直在寻找一种方法,可以在绘图创建后选择哪些系列在图上可见。在matplotlib图中交互选择系列
我需要这个,因为我经常有很多系列的情节。它们太多而无法同时进行绘图,我需要快速交互式地选择哪些系列是可见的。理想情况下,会出现一个窗口,其中包含剧情和复选框中的系列列表,其中带有选中复选框的系列可见。
有没有人知道这是否已经在某个地方实施?如果不是,那么有人可以指导我怎么做我自己?
谢谢!
奥马尔
这一切都取决于你多大的努力愿意做什么的确切的要求是,但你可以打赌它已经在某处执行:-)
如果目标主要是不混乱的形象,使用内置功能可能就足够了;你可以在matplotlib实例库找到相关代码:
如果你真的想有一个用户界面,让您可以通过限制图的量保护性能/数据,您通常会使用GUI工具箱,如GTK,QT或WX。看看这里的一些文章和示例代码:
与复选框列表将被罚款,如果你有几个地块或者更少,但更多的地块弹出菜单可能会更好。但我不确定是否可以使用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.ly开辟采购他们的图书馆,它是在Python交互图个不错的选择。请参阅:例如:https://plot.ly/python/legend/#legend-names。您可以点击图例轨迹并选择/取消选择轨迹。
如果你想嵌入Ipython/Jupyter笔记本,这也很简单:https://plot.ly/ipython-notebooks/gallery/