【发布时间】:2016-07-07 17:01:42
【问题描述】:
我正在学习如何使用 matplotlib,现在我遇到了问题。当我在“tkinter 项目”中创建一个Figure 并给它一个子图时,我使用NavigationToolbar2TkAgg 创建一个工具栏。此工具栏出现在图表的顶部。如何将其设置为其他位置,例如底部或左侧?
这是代码:
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
root = tk.Tk()
root.title("I am a newbie!")
# create the figure instances
fig = Figure()
a = fig.add_subplot(122)
b = fig.add_subplot(121)
# figure1 has two subplot and figure 2 has only one
fig2 = Figure(figsize=(2, 2))
c = fig2.add_subplot(111)
# create canvas1
canvas = FigureCanvasTkAgg(fig, root)
canvas.show()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.X)
# put this to the top of the window
# toolbar for canvas1 (figure1)
toolbar = NavigationToolbar2TkAgg(canvas, root)
toolbar.update()
# create canvas2
canvas2 = FigureCanvasTkAgg(fig2, root)
canvas2.show()
canvas2.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.X)
# put this to the bottom
# toolbar for canvas2 (figure2)
toolbar2 = NavigationToolbar2TkAgg(canvas2, root)
toolbar2.update()
# this function just to exit
def _quit():
root.quit()
root.destroy()
button = tk.Button(master=root, text='Quit', command=_quit)
button.pack(side=tk.BOTTOM)
root.mainloop()
这是出现的窗口:
- 为什么toolbar1的位置在底部?
- 为什么toolbar2在canvas2上面?
我想学习如何设置他们的位置。
【问题讨论】:
-
不太了解 tkinter,但听起来您可能需要使用图形画布和工具栏创建自己的窗口框架。这样,您可以将工具栏放置在您喜欢的任何位置。然而,这可能需要相当多的工作。
-
如果您创建 minimal reproducible example 并发布您的代码会有所帮助。
-
@Ajean ,@pathoren 谢谢你的回答,我只是编辑问题,你能看看吗? :)
标签: python matplotlib tkinter toolbar