tkinter想做饼状图

想根据a/7360,360-a/7360得出饼状图的两个角度
然后在页面六上呈现出四个饼状图

def printinfo1():
    a = num1E.get()
    if a >= "4":
        messagebox.showinfo("结果", "您是E外向型人格")
    else:
        messagebox.showinfo("结果", "您是I内向型人格")
def printinfo2():
    a = num2E.get()
    if a >= "4":
        messagebox.showinfo("结果", "您是S感觉型人格")
    else:
        messagebox.showinfo("结果", "您是N直觉型人格")
def printinfo3():
    a = num3E.get()
    if a >= "4":
        messagebox.showinfo("结果", "您是T思考型人格")
    else:
        messagebox.showinfo("结果", "您是F情感型人格")
def printinfo4():
       a = num4E.get()
       if a >= "4":
           messagebox.showinfo("结果", "您是J判断型人格")
       else:
           messagebox.showinfo("结果", "您是P感受型人格")

页面六:

sixth = tk.Toplevel(fifth)
sixth.withdraw()

sixth.geometry("800x800")
sixth.configure(bg="AntiqueWhite")

引用 皆我百晓生 小程序回复内容作答:
要绘制饼状图,你可以使用tkinter的Canvas组件来绘制。你可以通过计算a/7360和360-a/7360来得到饼状图的两个角度,并在页面六上呈现出四个饼状图。

下面是一个例子,展示如何在页面六上绘制一个简单的饼状图:

import tkinter as tk

def draw_pie_chart(canvas, angle1, angle2, color):
    canvas.create_arc(100, 100, 300, 300, start=angle1, extent=angle2, fill=color)

sixth = tk.Toplevel(fifth)
sixth.withdraw()

sixth.geometry("800x800")
sixth.configure(bg="AntiqueWhite")

canvas = tk.Canvas(sixth, width=400, height=400)
canvas.pack()

# 调用draw_pie_chart绘制饼状图
draw_pie_chart(canvas, 0, 90, "red")
draw_pie_chart(canvas, 90, 180, "blue")
draw_pie_chart(canvas, 180, 270, "green")
draw_pie_chart(canvas, 270, 360, "yellow")

sixth.deiconify()

请注意,这只是一个示例,饼状图的具体绘制方式可以根据你的需求进行调整。你可以修改draw_pie_chart函数的参数和调用方式来绘制根据a/7360和360-a/7360计算得到的角度的饼状图。

【以下回答由 GPT 生成】

我可以帮你创建四个饼状图,其角度由表单中的输入值决定。这里是一种优化的方式来实现:

  1. 首先,我们需要导入必要的库:
import tkinter as tk
from tkinter import messagebox
import matplotlib.pyplot as plt
  1. 接下来,创建一个函数来绘制饼状图。这个函数接受一个参数作为角度,并根据此参数绘制饼状图:
def draw_pie_chart(angle):
    labels = ['A', 'B', 'C', 'D']
    colors = ['red', 'blue', 'green', 'yellow']
    sizes = [angle, 360-angle, 0, 0]  # 根据角度设置饼状图的大小
    plt.pie(sizes, labels=labels, colors=colors)
    plt.axis('equal')  # 设置饼状图为圆形
    plt.show()
  1. 修改printinfo函数,使其调用draw_pie_chart函数并传入相应的角度:
def printinfo1():
    a = int(num1E.get())
    if a >= 4:
        messagebox.showinfo("结果", "您是E外向型人格")
        draw_pie_chart(90)  # 例如,当角度大于等于4时,设置饼状图的角度为90度
    else:
        messagebox.showinfo("结果", "您是I内向型人格")
        draw_pie_chart(270)  # 例如,当角度小于4时,设置饼状图的角度为270度
  1. 重复类似的步骤来改进printinfo2、printinfo3和printinfo4函数。

请注意,这只是一种可能的优化方式,具体的角度设置取决于你的需求和逻辑。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^