2016-12-24 83 views
-1

我有这样的熊猫数据框:如何创建分组的饼图

df = 

GROUP MARK 
ABC  1 
ABC  0 
ABC  1 
DEF  1 
DEF  1 
DEF  1 
DEF  1 
XXX  0 

我需要创建一个饼图(使用Python或R)。每个饼的大小应该对应于具有特定GROUP的行的比例计数(即百分比)。此外,每个馅饼应该分成两个子部分,对应于在给定GROUP内的MARK==1MARK==0的行的百分比。

我是谷歌搜索这种类型的饼图,发现this one。但这个例子似乎对我的情况来说过于复杂。另一个很好的例子是在JavaScript中完成的,由于语言的原因,这不适合我。

有人能告诉我这是什么类型的扇形图的名字,我在哪里可以找到在Python或R

+0

您可以使用'highcharter'这对于highcharts JS库的R包装(使用你的第二个 “很好的例子”)。我不认为这是一个很好的方式来呈现数据。 – arvi1000

+0

@ arvi1000:你可以发表一些饼图的例子吗?我只能找到条形图和时间序列。 – Dinosaurius

+1

虽然您可以使用派,但我不认为这是表示分层数据的最佳方式。有许多替代品,如树形图或华夫饼图。如果你想坚持放射状选择,我会看看coxcomb情节或sunburst情节。所有这些选项都包含有便于绘图的软件包。 –

回答

1

代码的一些例子这里是R中仅使用基础R的解决方案。不知道你想如何安排你的馅饼,但我使用par(mfrow=...)

df <- read.table(text=" GROUP MARK 
ABC  1 
ABC  0 
ABC  1 
DEF  1 
DEF  1 
DEF  1 
DEF  1 
XXX  0", header=TRUE) 

plot_pie <- function(x, multiplier=1, label){ 
    pie(table(x), radius=multiplier * length(x), main=label) 
} 

par(mfrow=c(1,3), mar=c(0,0,2,0)) 
invisible(lapply(split(df, df$GROUP), function(x){ 
    plot_pie(x$MARK, label=unique(x$GROUP), 
     multiplier=0.2) 
})) 

这是结果:

threepies