Python Tkinter画布和可以使用Matplotlib工具栏的项目?
我用Tkinter编写了一个小型GUI程序,因为我喜欢将更新排队到mainloop以进行后续项目更新的功能,以便创建由数据更改引起的循环颜色变化的交互式动画 (这是我发现matplotib不能很好地处理的问题,即如果我使用补丁,并且我想更新补丁的颜色,我发现我必须在现有补丁的基础上添加一个新补丁,这会留下颜色残留) 但是,我想从Matplotlib的工具栏中获益,这样我就可以使用缩放和平移功能 为了简单起见,我正在试验如何使用一个小测试程序来实现这一点,并且在同一个窗口中获得了matplotlib和tkinter。。。但是变焦不起作用 我有两周的Matplotlib经验,还有几天的Tkinter经验,因此请纠正我的任何不准确陈述或添加其他建议 以下是我为测试matplotlib缩放不起作用而编写的小程序:Python Tkinter画布和可以使用Matplotlib工具栏的项目?,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,我用Tkinter编写了一个小型GUI程序,因为我喜欢将更新排队到mainloop以进行后续项目更新的功能,以便创建由数据更改引起的循环颜色变化的交互式动画 (这是我发现matplotib不能很好地处理的问题,即如果我使用补丁,并且我想更新补丁的颜色,我发现我必须在现有补丁的基础上添加一个新补丁,这会留下颜色残留) 但是,我想从Matplotlib的工具栏中获益,这样我就可以使用缩放和平移功能 为了简单起见,我正在试验如何使用一个小测试程序来实现这一点,并且在同一个窗口中获得了matplotli
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import sys
from Tkinter import *
import matplotlib.backends.backend_tkagg as tkagg
class App:
def __init__(self, master):
self.frame = Frame(master, bg='#FFFFFF', height=1000, width=1000,
borderwidth=1, relief=RAISED)
self.frame.pack(expand=YES, fill=BOTH)
self.button = Button(
self.frame, text="QUIT", fg="red", command=self.frame.quit
)
self.button.pack(side=BOTTOM)
self.hi_there = Button(self.frame, text="Hello", command=self.say_hi)
self.hi_there.pack(side=BOTTOM)
###
# Creating a canvas for Tk items
self.tkcanvas = Canvas(self.frame, height=600, width=600)
self.tkcanvas.config(background='yellow')
self.tkcanvas.pack()
self.tkcanvas.create_rectangle(0,0,100,100,fill='blue')
# Hoping to utilize the mpl toolbar for zooming function by doing:
self.fig = Figure(figsize=(4,.5))
self.mplcanvas = FigureCanvasTkAgg(self.fig, master=self.frame)
self.mplcanvas.get_tk_widget().pack(side='bottom', fill='both')
self.mplcanvas._tkcanvas.pack(side='bottom', fill='both', expand=1)
#
self.mpltoolbar = NavigationToolbar2TkAgg( self.mplcanvas, master )
self.mpltoolbar.update()
self.mpltoolbar.pack()
###
def say_hi(self):
print "hi there, everyone!"
root = Tk()
app = App(root)
root.mainloop()
root.destroy()
仅供参考,有几种方法可以更改matplotlib修补程序的颜色。(例如设置面部颜色、设置边缘颜色)。在python提示符下键入help('matplotlib.patches.Circle')。