把使用matplotlib所画的饼状图显示在tkinter的窗口中,效果如下:
代码如下:
import tkinter as tk
import matplotlib
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
'''
frame 画布所在的frame
labels 标签
fraces 份额
'''
def draw_pie(frame,labels,fraces):
drawPic_f = Figure(figsize=(5, 4), dpi=100)
drawPic_canvas = FigureCanvasTkAgg(drawPic_f, master=frame)
drawPic_canvas.draw()
drawPic_canvas.get_tk_widget().grid(row=0, column=0)
drawPic_a = drawPic_f.add_subplot(111)
# 解决汉字乱码问题
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 使用指定的汉字字体类型(此处为黑体)
drawPic_a.pie(x=fraces, labels=labels, autopct='%0.2f%%')
drawPic_a.set_title('权重饼状图')
drawPic_canvas.draw()
def main():
root=tk.Tk()
root.title("饼状图")
labels = 'A', 'B', 'C', 'D'
fraces = [1, 5, 3, 1]
draw_pie(root,labels,fraces)
root.mainloop()
if __name__=="__main__":
main()
参考文献:
1、python数据可视化学习-饼状图
https://blog.csdn.net/qq_31390999/article/details/82828898
2、python 使用matplotlib包画饼图时解决汉字乱码问题
https://blog.csdn.net/ybr1808319440/article/details/84145687
3、tkinter内嵌Matplotlib系列
https://www.cnblogs.com/zyg123/p/10385517.html
4、使用Tkinter绘制GUI并结合Matplotlib实现交互式绘图
https://www.cnblogs.com/chaosimple/p/4029687.html