我一直在尋找一種方法,可以在繪圖創建後選擇哪些系列在圖上可見。在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/