【问题标题】:Displaying a matplotlib bar chart in Tkinter在 Tkinter 中显示 matplotlib 条形图
【发布时间】:2015-10-11 12:43:54
【问题描述】:

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

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

长话短说,谁能给我提供一个在 Tkinter 窗口中显示的 matplotlib 条形图的示例?谢谢。

【问题讨论】:

  • 嗨,Sam,您能补充一下您目前尝试过的内容吗?看来您只需要尝试将您提供的两个链接结合在一起,为什么不尝试一下!

标签: python matplotlib charts tkinter


【解决方案1】:

对于将来可能想知道的任何人,我想出了如何让它发挥作用。基本上,您的条形图必须在 Figure 上,这样 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.draw()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)

Tk.mainloop()

【讨论】:

猜你喜欢
  • 2020-06-19
  • 2017-10-17
  • 2017-12-25
  • 1970-01-01
  • 2018-11-30
  • 2018-03-02
  • 2023-03-16
  • 1970-01-01
  • 2020-02-05
相关资源
最近更新 更多