2013-02-18 69 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)解决问题。