2016-12-24 4 views
-1

У меня есть этот панд dataframe:Как создать группу PieChart

df = 

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

Мне нужно создать PieChart (с использованием Python или R). Размер каждого пирога должен соответствовать пропорциональному счету (т. Е. Проценту) строк с конкретными GROUP. Кроме того, каждый пирог должен быть разделен на 2 части, соответствующие проценту строк с MARK==1 и MARK==0 в пределах заданных GROUP.

Я искал для этого типа пиар-карт и искал this one. Но этот пример, кажется, слишком сложный для моего случая. Еще один хороший пример можно сделать в JavaScript, который не служит мне из-за языка.

Может кто-нибудь сказать мне, что название этого типа круговых диаграмм и где я могу найти некоторые примеры кода в Python или R.

+0

Вы можете использовать 'highcharter', который является R-оболочкой для Highcharts JS библиотеки (используемый вашим 2 "хорошим примером"). Я не думаю, что это отличный способ представить данные. – arvi1000

+0

@ arvi1000: Можете ли вы разместить пример круговой диаграммы? Я могу найти только бары и таймеры. – Dinosaurius

+1

Хотя вы можете использовать пирог, я не думаю, что это лучший способ представления иерархических данных. Существует множество альтернатив, таких как treemap или waffle plot. Если вы хотите придерживаться радиальных опций, я бы посмотрел на участок coxcomb или участок солнечного света. Все эти опции имеют пакеты для облегчения построения графика. –

ответ

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

Смежные вопросы