2011-11-14 100 views
0

我正在使用matplotlib的滑塊小部件,並且我一直在嘗試使用blit更新快速動畫的滑塊,因爲如果我在整個畫布上使用draw(),它太慢了。我使用這種方法獲得了更快的動畫效果(雖然看起來不太完美),但我無法弄清楚如何繪製出現在滑塊旁邊的滑塊值。任何幫助將不勝感激。我的滑塊的代碼是這樣的:有如何從matplotlib中繪製滑塊小部件的值文本?

import pylab as p 
from matplotlib.widgets import Slider 

axsigma = p.axes([0.25, 0.10, 0.65, 0.03], axisbg=axcolor) 
slider1 = Slider (axsigma, 'Sigma',0.20, 18, valinit=s0,dragging=True, fc='blue') 

canvas1=axsigma.figure.canvas 

def update (val): 
    canvas1.blit(axsigma.bbox) 

slider1.on_changed(update) 

回答

0

它完美(WIN7 64位MPL 1.0.0 py2.6.5):

In [7]: f = figure() 
In [8]: ax = f.add_subplot(111) 
In [9]: sl = Slider (ax, 'Sigma',0.20, 18, valinit=0, dragging=True, fc='blue')  

可以手動拖動速度非常快,無需使draw()或canvas.blit()。

+0

mmm,我認爲這只是爲了更新滑塊值,當它沒有被直接使用改變時。我認爲問題在於滑塊值文本是圖形文本對象,所以渲染文本的唯一方法是渲染整個圖形,這正是我不想做的。現在我從滑塊中刪除了值文本,並且正在考慮使用滑塊值設置一些軸文本,但我無法弄清楚如何僅繪製軸文本。不過謝謝。 – user1044891

+0

@ user1044891檢查新的編輯 – joaquin