在Tkinter中显示matplotlib条形图

Sam*_*eld 3 python charts tkinter matplotlib

我正在尝试在Tkinter窗口中显示matplotlib条形图。我发现了很多有关如何放置折线图的教程,例如:http : //matplotlib.org/examples/user_interfaces/embedding_in_tk.html

但是我找不到一个可放入条形图的图表。我知道制作条形图的唯一方法是这样的:http : //matplotlib.org/examples/api/barchart_demo.html。显然,条形图示例中导入的模块与Tkinter示例中导入的模块不同,如果可以的话,我不确定如何使其工作。

长话短说,有人可以向我提供在Tkinter窗口中显示的matplotlib条形图示例吗?谢谢。

Sam*_*eld 6

对于将来可能想知道的任何人,我想出了如何使其工作的方法。基本上,您的条形图必须在地物上,以便FigureCanvasTkAgg可以生成供Tkinter使用的小部件。我以为您需要使用pyplot,但这不是真的。这是我想出的:

import matplotlib, numpy, sys
matplotlib.use('TkAgg')
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
if sys.version_info[0] < 3:
    import Tkinter as Tk
else:
    import tkinter as Tk

root = Tk.Tk()

f = Figure(figsize=(5,4), dpi=100)
ax = f.add_subplot(111)

data = (20, 35, 30, 35, 27)

ind = numpy.arange(5)  # the x locations for the groups
width = .5

rects1 = ax.bar(ind, data, width)

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

Tk.mainloop()
Run Code Online (Sandbox Code Playgroud)