2011-06-01 78 views
1

我使用Python中的PyChart庫創建餅圖。 這裏是我的代碼:使用Python中的PyChart庫顯示餅圖中的數據(%)

from pychart import * 
import sys 

data = [("foo", 10), ("bar", 20), ("baz", 30), ("ao", 40)] 
theme.use_color = True 
theme.get_options() 

ar = area.T(size = (150, 150), legend = legend.T(), 
      x_grid_style = None, y_grid_style = None) 

plot = pie_plot.T(data = data, arc_offsets = [0, 0, 0, 0], label_offset = 20, arrow_style = arrow.a3) 
ar.add_plot(plot) 
ar.draw() 

我怎樣才能顯示這個餅圖上(%)數據?

回答

2

在將數據傳遞給繪圖函數之前,會將數據轉換爲百分比嗎?

例如:

def to_percents(data): 
    total = float(sum(v for _, v in data)) 
    data[:] = [(k, v/total) for k, v in data] 
    return data 

data = to_percents([("foo", 1), ("bar", 3), ("baz", 5), ("ao", 7)]) 
print data 

輸出:

[('foo', 0.0625), ('bar', 0.1875), ('baz', 0.3125), ('ao', 0.4375)] 
+0

此外,它不是那麼重要,但你應該做的(K,V /總數)* 100 – Hgeg 2011-06-01 06:26:06

+1

是的,你可以做'( (v/total)* 100.0),但Pychart的顯示邏輯似乎並不關心數據的範圍,只是比率。 – samplebias 2011-06-01 06:34:30

相關問題