答案一定能在python2.7上实现,这是我的数据
这是我的图表
from Tkinter import *
def getMarks():
a,b,c,d,f = 0,0,0,0,0
mark = input("Enter a mark (-1 to finish): ")
while mark >= 0:
if mark >= 90:
a = a + 1
elif mark >= 80:
b = b + 1
elif mark >= 70:
c = c + 1
elif mark >= 60:
d = d + 1
else:
f = f + 1
mark = input("Enter a mark (-1 to finish): ")
return a,b,c,d,f
def getDefaultMarks():
return 5,8,10,12,13
def create_grade_piechart(a,b,c,d,f):
#a,b,c,d,f = getMarks()
#a,b,c,d,f = getDefaultMarks()
win = Tk()
cv = Canvas(win,width=300,height=200,bg="white")
cv.pack()
n = a+b+c+d+f
eA,sA = 360.0*a/n,0
eB,sB = 360.0*b/n,eA
eC,sC = 360.0*c/n,eA+eB
eD,sD = 360.0*d/n,eA+eB+eC
eF,sF = 360.0*f/n,eA+eB+eC+eD
bb = (90,40,210,160)
pieA = cv.create_arc(bb,start=sA,extent=eA,fill="yellow")
pieB = cv.create_arc(bb,start=sB,extent=eB,fill="green")
pieC = cv.create_arc(bb,start=sC,extent=eC,fill="black")
pieD = cv.create_arc(bb,start=sD,extent=eD,fill="gray")
pieF = cv.create_arc(bb,start=sF,extent=eF,fill="red")
cv.create_rectangle(240,40,260,50,fill="yellow")
cv.create_rectangle(240,40+24,260,50+24,fill="green")
cv.create_rectangle(240,40+48,260,50+48,fill="black")
cv.create_rectangle(240,40+72,260,50+72,fill="gray")
cv.create_rectangle(240,40+96,260,50+96,fill="red")
cv.create_text(270,40,text="A",anchor=N)
cv.create_text(270,40+24,text="B",anchor=N)
cv.create_text(270,40+48,text="C",anchor=N)
cv.create_text(270,40+72,text="D",anchor=N)
cv.create_text(270,40+96,text="F",anchor=N)
piepct = cv.create_text(40,100,text="")
def inPieA(event):
pct = "%5.1f%%" % (100.0*a/n)
cv.itemconfig(piepct,text=pct)
def inPieB(event):
pct = "%5.1f%%" % (100.0*b/n)
cv.itemconfig(piepct,text=pct)
def inPieC(event):
pct = "%5.1f%%" % (100.0*c/n)
cv.itemconfig(piepct,text=pct)
def inPieD(event):
pct = "%5.1f%%" % (100.0*d/n)
cv.itemconfig(piepct,text=pct)
def inPieF(event):
pct = "%5.1f%%" % (100.0*f/n)
cv.itemconfig(piepct,text=pct)
cv.tag_bind(pieA,"<Enter>",inPieA)
cv.tag_bind(pieB,"<Enter>",inPieB)
cv.tag_bind(pieC,"<Enter>",inPieC)
cv.tag_bind(pieD,"<Enter>",inPieD)
cv.tag_bind(pieF,"<Enter>",inPieF)
win.mainloop()
def main():
#a,b,c,d,f = getDefaultMarks()
#create_grade_piechart(a,b,c,d,f)
create_grade_piechart(11,4,3,5,5)
if __name__ == '__main__':
main()
pass
如何让文本数据中score旁边那一列的数字,导入做好的图表中,原本的图表是交互式的你要自己输入数据,我现在数据列好了,如何输给图表,并通过图表展示。希望能写一下代码,谢谢