【问题标题】:How to add a Matplotlib Graph (Pizza Graph Style) in Tkinter如何在 Tkinter 中添加 Matplotlib 图形(比萨图样式)
【发布时间】:2019-09-02 01:28:31
【问题描述】:

我有一个带有 2 个值的 Matplotlib 图表,这些值的图表是“Pizza Graph 2d”我需要将此图表放在我的 tkinter 应用程序中,我如何在 Tkinter 中放置一个披萨图表?

我尝试在 tkinter 和 Figure 中制作画布,但其中任何一个运行,在某些部分会出现白框但没有图表,我如何在我的 tkinter 应用程序中从 matplotlib 获取图表?


    matplotlib.use("TkAgg")

    DataBaser.cursor.execute("""
    SELECT RendaMensal FROM Registro
    Where Status = 'On'
    """)

    RendaGet = DataBaser.cursor.fetchone()

    Renda = RendaGet[0]

    print(Renda)

    DataBaser.cursor.execute("""
    SELECT TotalDebt FROM Registro
    Where Status = 'On'
    """)

    TotalDebt = DataBaser.cursor.fetchone()

    Debt = TotalDebt[0]

    print(Debt)

    sizes = [Debt, Renda]

    labels = 'Gastos', 'Renda'

    fig1, axl = plt.subplots()

    colors = ['red', 'green']

    c2 = axl.pie(sizes, labels=labels, autopct='%0.0f%%', shadow=False, startangle=90, colors=colors)

    axl.axis('equal')

    circle = axl.axis('equal')

    #plt.xticks(Renda)


    plt.title("Controle do Limite")



    f = Figure(figsize=(5, 4), dpi=(100))
    f.add_subplots(fig1, axl)
    f.draw(DataFrame)

    #plt.show()


    canvas = FigureCanvasTkAgg(f,master=DataFrame)
    canvas.draw()
    #canvas.get_tk_widget().pack(side=LEFT, fill=BOTH, expand=True)
    canvas._tkcanvas.pack(side=tk.BOTTOM, fill=tk.BOTH, expand = True)

【问题讨论】:

    标签: python-3.x matplotlib tkinter


    【解决方案1】:

    您正在创建两个图形,fig1,用于绘制饼图,f,用于创建FigureCanvasTkAgg。删除f 并在FigureCanvasTkAgg 中改用fig1

    类似:

    fig1, axl = plt.subplots()
    c2 = axl.pie(sizes, labels=labels, autopct='%0.0f%%', shadow=False, startangle=90, colors=colors)
    canvas = FigureCanvasTkAgg(fig1, master=DataFrame)
    canvas.draw()
    canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand = True)
    

    【讨论】:

    • 非常感谢,这对我很有帮助。
    • 你知道如何改变这张图的背景颜色吗?
    • 你知道我如何更新我的图表,例如我转到另一个页面,当我返回时(如果我做了一些更改),图表将被更新
    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 2023-03-08
    • 2015-10-11
    • 1970-01-01
    • 2019-01-31
    • 2023-02-10
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多