matplotlib p中级数的交互选择

2024-03-28 23:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在寻找一种方法,可以选择哪些系列是可见的一个绘图后,绘图是创建。

我需要这个,因为我经常有许多系列的情节。它们太多,无法同时绘制,我需要快速和交互式地选择哪些序列可见。理想情况下,在绘图和复选框中将有一个带有序列列表的窗口,其中带有选中复选框的序列可见。

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

谢谢!

奥马尔


Tags: 方法绘图列表地方绘制情况序列中将
3条回答

如果有几个或更少的绘图,带复选框的列表就可以了,但是对于更多的绘图,弹出菜单可能更好。不过,我不确定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

既然plot.ly已经打开了它们的库的源代码,那么对于python中的交互式绘图来说,这是一个非常好的选择。请参见示例:https://plot.ly/python/legend/#legend-names。您可以单击图例跟踪并选择/取消选择跟踪。

如果要嵌入Ipython/Jupyter笔记本,这也很简单:https://plot.ly/ipython-notebooks/gallery/

这完全取决于你愿意做多少努力以及具体的需求是什么,但你可以打赌它已经在某个地方实现了:-)

如果目的主要是不使图像变得杂乱无章,那么使用内置功能就足够了;您可以在matplotlib示例库中找到相关代码:

如果您真的想要一个UI,那么您可以通过限制绘图/数据的数量来保护性能,您通常会使用一个GUI工具箱,比如GTK、QT或WX。在这里查找一些文章和示例代码:

相关问题 更多 >