2015-11-08 3 views
8

Допустим, у меня есть этот простой данные:красивые Круговые диаграммы с R

mydata <- data.frame(group=c("A", "B", "0", "AB"), FR=c(20, 32, 32, 16)) 

Если я хочу создать круговую диаграмму из этого dataframe я могу сделать:

with(mydata,pie(FR, labels=paste0(as.character(group), " ", FR, "%"), radius=1)) 

basic pie

Это довольно просто, но приемлемо.

Как я могу получить что-то подобное с ggplot2 или решеткой?

После долгих проб и ошибок я получил

ggplot(mydata, aes(x = factor(1), y=FR,fill=factor(group))) + geom_bar(width = 1,stat="identity")+coord_polar(theta = "y") 

ggplot

Это гораздо более сложный и некрасиво. Разве это не должно быть легко? Книги ggplot дают только некоторые примеры и препятствуют использованию круговых диаграмм.

Решетка еще хуже, вам нужно много линий, чтобы устрашить ее.

Не могли бы кто-нибудь помочь мне лучше получить красивую и простую круговую диаграмму, пожалуйста? Например, что-то вроде ...

example1

example2

Нет ли R пакет в состоянии сделать это легко, без 20 строк кода?

+4

Код rawrs создал прекрасный сюжет с использованием базы R: http://stackoverflow.com/questions/26748069/ggplot2-pie-and-donut-chart-on-same-plot/26749522#26749522 - может дать некоторые подсказки (но, скорее всего, вам понадобится> 20 строк) – user20650

+5

Как выглядит ggplot pie «уродливый»? Было бы проще помочь вам, если бы вы сказали нам, что отсутствует/нуждается в изменении. – scoa

+2

@skan, пожалуйста, _please_ загляните в обширный массив информации, доступной бесплатно, которая поможет вам понять, почему нижние две круговые диаграммы, которые, по вашему мнению, являются «прекрасными» и (я думаю), обмениваются данными, на самом деле довольно ужасны и весьма неэффективны в обеспечивая желаемый результат. Я ценю, что Стивен включил вафельный чарт, и чисто выполненная гистограмма также очень хорошо справится с данными в вашем первоначальном пироге. – hrbrmstr

ответ

9

Вы можете попробовать с pie3D() функции из plotrix пакета:

library(plotrix) 
pie3D(mydata$FR, labels = mydata$group, main = "An exploded 3D pie chart", explode=0.1, radius=.9, labelcex = 1.2, start=0.7) 

enter image description here

+8

, если только там были некоторые C4, доступные для фактического взрыва круговых диаграмм :-) – hrbrmstr

+1

Не могли бы вы объяснить, что такое C4? – skan

+1

C4 - [мощное взрывное устройство] (https://en.wikipedia.org/wiki/C-4_%28explosive%29). – RHertel

28

Почему не площадь круговая диаграмма?

devtools::install_github("hrbrmstr/waffle") 
library(waffle) 

mydata <- c(`A`=20, `B`=32, `0`=32, `AB`=16) 
waffle(mydata, title = "Yummy waffle pie!") 

enter image description here


Если у вас есть несколько аспектов информации, другой вариант может быть sunburstR.Использование browsers данных @rawr post вы могли бы сделать:

library(sunburstR) 
library(dplyr) 
library(tidyr) 
browsers %>% 
    unite(bv, browser, version, sep = "-") %>% 
    select(bv, share) %>% 
    sunburst(., count = TRUE) 

enter image description here

Вы можете использовать treemap (для интерактивной версии, попробуйте @ timelyportfolio-х d3treeRpackage)

library(treemap) 
tm <- treemap(
    browsers, 
    index=c("browser", "version"), 
    vSize="share", 
    vColor="share", 
    type="value" 
) 

enter image description here

Вы также можете использовать как Анкей схема (от networkD3package)

library(networkD3) 
df <- browsers %>% 
    mutate_each(funs(as.character), browser, version) %>% 
    mutate(bn = group_indices_(., .dots = "browser"), 
     cn = max(bn) + row_number()) 

links <- select(df, bn, cn, share) 
nodes <- data.frame(name = c("", sort(unique(df$browser)), df$version)) 

sankeyNetwork(Links = links, Nodes = nodes, Source = "bn", 
       Target = "cn", Value = "share", NodeID = "name", 
       fontSize = 12, nodeWidth = 30) 

enter image description here

+2

и пример с использованием [base] (https://github.com/raredd/plotr/blob/master/R/plots.R#L804:L823) – rawr

+1

Оба участка отличные @Steven Beaupre –

25

Некоторые полезные советы здесь:

Источник: Dark Horse Analytics: Salvaging the Pie

(srsly Тхо, что случилось с гистограммой?)

Примечание: Я понятия не имею, что делает Dark Horse Analytics. Это просто мой демонстрационный образ анти-пирога.

+2

Бекон, конечно! –

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