如何创建分组饼图

时间:2016-12-24 15:05:32

标签: python r matplotlib ggplot2

我有这个pandas数据帧:

df =

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

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

我正在使用谷歌搜索这种类型的饼图并找到this one。但是这个例子对我来说似乎过于复杂。另一个很好的例子是在JavaScript中完成的,由于语言不适合我。

有人可以告诉我这种类型的饼图的名称是什么,我在哪里可以找到Python或R中的一些代码示例。

1 个答案:

答案 0 :(得分: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