2016-12-24 86 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