1
有什麼辦法可以在用戶放大後更新Matplotlib圖形的標題??例如,我想標題,以顯示確切的延伸x軸的,Matplotlib:如何在用戶放大後更新圖形標題?
import pylab as pl
import numpy as np
x = np.arange(10,step=0.1)
y = np.sin(x)
f = pl.figure()
pl.plot(x,y)
def my_ondraw(ev):
x1,x2 = f.gca().get_xlim() # FIXME value hasn't been updated yet
pl.title("x = [%f, %f]" % (x1,x2))
f.canvas.mpl_connect('draw_event', my_ondraw)
pl.show()
如前所述,我的代碼不會從get_xlim(),因爲再拉不是招」得到正確的值回當時my_ondraw被稱爲...
有什麼建議嗎?
修改代碼,基於以下伊利亞的建議工作:
import pylab as pl
import numpy as np
x = np.arange(10,step=0.1)
y = np.sin(x)
f = pl.figure()
ax = f.gca()
pl.plot(x,y)
def my_ondraw(ev):
print "my_ondraw: %s" % ev.name
x1,x2 = f.gca().get_xlim() # FIXME value hasn't been updated yet
pl.title("x = [%f, %f]" % (x1,x2))
ax.callbacks.connect('xlim_changed', my_ondraw)
pl.show()
是的,它的工作原理。然而,這個文檔在這個特殊點上非常糟糕,因爲它不能清楚地表明'xlim_changed'存在,以及如何將事件連接到它。但是你的榜樣讓我直觀。謝謝! – jdpipe
@jdpipe不客氣! – Ilya