带海龟的饼图
有没有人能给我一个例子,教我怎么用Python的turtle模块和老师给的列表来画饼图?我找到的大多数结果都是用其他模块,比如pychart。我真的很需要帮助,因为这关系到我的考试。
这是老师给的内容:-
chart_title = '昆士兰公共服务委员会支出'
segment_labels = ['安全', '教育', '交通', '健康', '其他']
percentages = [0.1, 0.25, 0.16, 0.2, 0.29]
我已经能画出圆形和线条了。可是我该怎么把线条和给定的数值结合起来呢?
这是我的代码……虽然很初级,但这就是我的水平,因为我在这门编程课上真的很挣扎。
for i in range(len(percentages)):
if i!=0:
if i in range(len(percentages))>=0.25:
goto(0,320)
right(-205)
pendown()
goto(0,0)
fd(320)
color('dark green')
width(4)
penup()
elif i in range(len(percentages))>=0.16:
goto(0,320)
right(-245)
pendown()
goto(0,0)
fd(320)
color('dark green')
width(4)
penup()
即使我把elif设置了,似乎也画出了一模一样的东西。有人能告诉我为什么会这样,以及我该怎么解决这个问题吗?
2 个回答
我知道这是一个作业,不能直接把代码给你。
这个问题有几个要素,希望我能给你一些方向,让你能自己找到解决办法 :)
首先,饼图就是一个圆圈,里面有线条来表示不同的数值。Turtle(一个绘图工具)里有画圆的功能,所以我们已经有了饼图的基础。
其次,你需要把那些“百分比”转换成有意义的值。(提示,圆有360度),我把这个叫做percent_heading,这样解释起来更简单。
第三,你需要创建一个循环,因为你需要让小乌龟为每个percent_heading画一条线。也就是说,对于每个百分比的值,先把小乌龟转到percent_heading的位置,从圆心画一条线到外圈,然后再回到圆心,准备转到下一个percent_heading。
最后,你应该会得到一个圆圈,里面有很多条线,代表不同的百分比。
我来回答你两天前的问题 -
在这段代码中,for a_value in percentages:
,我的小乌龟的方向会是:a_value
乘以 360。然后我的小乌龟会朝这个方向左转,走出去画一条线,最后再回到圆的中心。
这就是我的循环的结束。当下一个循环开始时,我的小乌龟会朝下一个 a_value
在 percentages
中的方向左转,接着走出去画一条线,然后再回到中心。
基本上,我的小乌龟会对 percentages
列表中的每一个值都这样做,直到列表里没有值为止。只要记住,当你使用 for
命令时,你的循环就开始了 - 你实际上是在告诉 Python:“对于 percentages
中的每一个值,我想让你做以下事情:”然后它就会执行下面的所有内容。