2014-03-30 94 views
0

我想繪製一個與動態龜對應的餅圖,並且可以對提供的不同數據組作出反應,但由於某些原因,它並未畫出使得段。不能繪製動態餅圖

是否有人能夠幫助識別我的代碼中的問題,以便按照我的意圖執行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() 

回答

0

我覺得你的for循環或許應該看起來更像是這樣的:

for percent in percentages: 

的percent_to_heading變量是不是你想要的值。由於百分比的列表中的每個元素是你想要的段佔用圓的百分比,你應該360

percent_to_heading = percent * 360 

乘以當前元素最後,你需要創建一個滾動%的變量,該變量具有當前角度和其之前的所有角度的總和。否則,這些部分會相互重疊。最終功能應該看起來與此相似:

def segment(percentages): 
    rollingPercent = 0 
    radius=200 
    for percent in percentages: 
     segment = percent * 360 
     rollingPercent += segment 
     setheading(rollingPercent) 
     pendown() 
     forward(radius) 
     penup() 
     home()