首页 文章

在Tkinter中显示matplotlib条形图

提问于
浏览
3

我想在Tkinter窗口中显示matplotlib条形图 . 我找到了很多关于如何放置折线图的教程,例如:http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html

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

长话短说,任何人都可以向我提供一个在Tkinter窗口内显示的matplotlib条形图的示例吗?谢谢 .

1 回答

  • 4

    对于任何可能在将来想知道的人,我想出了如何让它发挥作用 . 基本上,您的条形图必须在图上,以便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()
    

相关问题