2016-09-06 69 views
2

我有一个熊猫数据帧象下面这样:饼图和条形图在Python

Group id Count 
G1  412 52 
G1  413 34 
G2  412 2832 
G2  413 314 

我试图建立在Python饼图 - 每个集团和id,我需要显示相应的计数。它应该有两个拆分 - 一个用于组和其他Id。外圈应该是组,内圈应该是id。刚开始使用可视化,想知道是否有一个python库可以做到这一点。

这个要求是否使用条形图来实现?

+0

我不这么认为。对于组的每个切片,应该有两个切片。例如,首先在饼图中切片为G1,其中应该有两个子片,一个用于412,另一个用于413。 – user3447653

回答

1

熊猫还集成了matplotlib,这有点丑但非常方便。 http://pandas.pydata.org/pandas-docs/stable/visualization.html#pie-plot

一些复杂的例子 Hierarchic pie/donut chart from Pandas DataFrame using bokeh or matplotlib

我的经验是,你必须做很多的配置,如果你想与蟒蛇一个基本的DIY图表。也许最好的办法是以下几种选择之一: 1)试试如果数据不敏感 2)使用excel并将excel与图表集成在一起,这可以为您节省大量时间,因为人们可以熟悉Excel图表模板很容易。 3)如果你只是想做简单的事情,你自己DIY,目前,散景,matplotlib,seaborn都在考虑之列。

0

这里的真实需要什么,如果你使用pyexcelpyexcel-pygal

>>> import pyexcel as p 
>>> sheet = p.get_sheet(file_name='test.csv', delimiter='\t') 
>>> sheet 
test.csv: 
+-------+-----+-------+ 
| Group | id | Count | 
+-------+-----+-------+ 
| G1 | 412 | 52 | 
+-------+-----+-------+ 
| G1 | 413 | 34 | 
+-------+-----+-------+ 
| G2 | 412 | 2832 | 
+-------+-----+-------+ 
| G2 | 413 | 314 | 
+-------+-----+-------+ 
>>> sheet.transpose() 
>>> sheet 
test.csv: 
+-------+-----+-----+------+-----+ 
| Group | G1 | G1 | G2 | G2 | 
+-------+-----+-----+------+-----+ 
| id | 412 | 413 | 412 | 413 | 
+-------+-----+-----+------+-----+ 
| Count | 52 | 34 | 2832 | 314 | 
+-------+-----+-----+------+-----+ 
>>> sheet.name_rows_by_column(0) 
>>> sheet.row['Group'] 
['G1', 'G1', 'G2', 'G2'] 
>>> p.save_as(array=[sheet.row['Group'], sheet.row['Count']], dest_chart_type='pie', dest_file_name='group_pie.svg') 

group_pie.svg

>>> p.save_as(array=[sheet.row['id'], sheet.row['Count']], dest_chart_type='pie', dest_file_name='id_pie.svg') 

id_pie.svg