无法绘制动态饼图
我正在尝试用Turtle画一个动态的饼图,这个饼图可以根据不同的数据集来变化。但是不知为什么,它没有画出分段的线条。
有没有人能帮我找出我代码中的问题,让它能像我想的那样执行segment()
这个函数呢?
chart_title = 'Tourism GDP by States/Territories in Australia'
segment_labels = ['QLD', 'VIC', 'NSW', 'SA', 'WA', 'TAS', 'NT', 'ACT']
percentages = [0.24, 0.22, 0.328, 0.06, 0.082, 0.03, 0.02, 0.02]
from turtle import *
radius = 200
penup()
forward(radius)
left(90)
pendown()
color('palegreen')
begin_fill()
circle(radius)
end_fill()
home()
right(90)
color('black')
def segment(percentages):
for _ in percentages[:]:
radius=200
percent_to_heading=((percentages*100)/360)*100
setheading(percent_to_heading)
pendown()
forward(radius)
penup()
home()
1 个回答
0
我觉得你的for循环应该像这样:
for percent in percentages:
percent_to_heading这个变量不是你想要的值。因为列表中的每个百分比都是你希望这个部分占据的圆的百分比,所以你应该把当前的元素乘以360。
percent_to_heading = percent * 360
最后,你需要创建一个滚动的percent变量,它会包含当前角度和之前所有角度的总和。否则这些部分会重叠在一起。最终的函数应该像这样:
def segment(percentages):
rollingPercent = 0
radius=200
for percent in percentages:
segment = percent * 360
rollingPercent += segment
setheading(rollingPercent)
pendown()
forward(radius)
penup()
home()