2013-01-05 28 views
7

Tôi đang tạo biểu đồ hình tròn theo matplotlib-demo: http://matplotlib.org/examples/pylab_examples/pie_demo.html
Phần trăm của mỗi frac có vẻ được tự động gắn nhãn. Làm cách nào tôi có thể thay thế các giá trị tương đối được gắn nhãn tự động (%) này được vẽ trên biểu đồ hình tròn bằng các giá trị tuyệt đối từ các dấu ngoặc vuông []?Biểu đồ hình tròn Matplotlib: Cách thay thế giá trị tương đối được gắn nhãn tự động theo giá trị tuyệt đối

Trả lời

10

help(pie) nói:

*autopct*: [ *None* | format string | format function ] 
    If not *None*, is a string or function used to label the 
    wedges with their numeric value. The label will be placed inside 
    the wedge. If it is a format string, the label will be ``fmt%pct``. 
    If it is a function, it will be called. 

vì vậy bạn có thể biến tỷ lệ trở lại giá trị ban đầu bằng cách nhân tổng kích thước của chiếc bánh và chia cho 100:

figure(1, figsize=(6,6)) 
ax = axes([0.1, 0.1, 0.8, 0.8]) 
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' 
fracs = [15, 30, 45, 10] 
total = sum(fracs) 
explode=(0, 0.05, 0, 0) 
pie(fracs, explode=explode, labels=labels, 
    autopct=lambda(p): '{:.0f}'.format(p * total/100), 
    shadow=True, startangle=90) 
show() 

+2

Để hiển thị cả phần trăm và tổng số: http://stackoverflow.com/questions/6170246/how-do-i-use-matplotlib-autopct – zehpunktbarron

+2

Đó phải là 'lambda p' trong mã đó, không có dấu ngoặc đơn. –

+0

@ K.-MichaelAye: Các dấu ngoặc đơn là hợp pháp trong Python 2.7 - lưu ý ngày câu trả lời được viết. –

Các vấn đề liên quan