2015-07-21 350 views
2

我想在Tkinter窗口中顯示matplotlib條形圖。我發現很多關於如何放置折線圖的教程,例如: http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html在Tkinter中顯示matplotlib條形圖

但是我無法找到一個放入條形圖。我知道製作條形圖的唯一方法是這樣的:http://matplotlib.org/examples/api/barchart_demo.html。顯然,條形圖示例中導入的模塊與Tkinter示例中的模塊不同,我不確定如何使它工作,如果可以的話。長話短說,任何人都可以提供一個matplotlib條形圖在Tkinter窗口內顯示的例子嗎?謝謝。

+0

嗨,山姆,你可以添加你到目前爲止嘗試過嗎?看起來你只需要一起去把你給的兩個鏈接放在一起,爲什麼不去! – Greg

回答

3

對於任何可能在未來想知道的人,我想出瞭如何讓它工作。基本上,你的條形圖必須放在一個圖上,這樣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()