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