2013-02-18 29 views
1

我有一個導航工具欄的簡單圖形。當我縮放或平移時,圖形會正確更新,但軸標籤會混亂。就好像在繪製新文本之前不會清除舊文本一樣。所以你會看到新的文字寫在舊的。如果我調整窗口大小,它似乎會進行完整的重新繪製並修復標籤。這是我簡單的例子:matplotlib軸在變焦上重繪

import matplotlib 
matplotlib.use('TkAgg') 
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg 
from matplotlib.backend_bases import key_press_handler 
from matplotlib.figure import Figure 

from Tix import * 
from Tkconstants import * 

root = Tk() 
f = Figure(figsize=(12,5), dpi=100, frameon=False) 
s = f.add_subplot(111, title="test") 
x = [0,1,2,3,4,5] 
y = [5,2,6,7,3,6] 

s.plot(x,y,label="Test") 

canvas = FigureCanvasTkAgg(f, master=root) 
canvas.show() 
canvas.get_tk_widget().pack(side=TOP, fill=BOTH, expand=1) 
canvas._tkcanvas.pack(side=TOP, fill=BOTH, expand=1) 
NavigationToolbar2TkAgg(canvas, root) 


root.mainloop() 

這裏是一個前: enter image description here

下面是平移後: enter image description here

+0

我想你是嵌入到另一個程序中,不能使用'pyplot'?可能值得深入探討'TkAgg''FigureManager'如何處理這個[請參閱此代碼](https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/backends/backend_tkagg.py# L509)。 – tacaswell 2013-02-18 19:57:31

+0

我在這些截圖中看到「tix」;哎呀!有誰知道任何實際上主動維護Tix的人? (我在SourceForge上看到的最後一次重大變化是從4年前開始的......) – 2013-02-19 22:09:52

+0

不相關,它在tk/tkinter中有相同的問題。我用它是因爲我想在我的項目中使用Notebook小部件。 – 2013-02-20 05:04:25

回答

0

至於建議的Oblivion
刪除frameon=False選項從f = Figure(figsize=(12,5), dpi=100, frameon=False)解決問題。