2012-10-15 121 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

相關問題