2015-11-08 16 views
8

Hãy nói rằng tôi có dữ liệu đơn giản này:Charts Pie đẹp với R

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

Nếu tôi muốn tạo ra một biểu đồ pie từ dataframe này tôi có thể làm:

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

basic pie

Nó khá đơn giản nhưng có thể chấp nhận được.

Làm cách nào để có được thứ gì đó tương tự với ggplot2 hoặc mạng?

Sau nhiều thử và sai Tôi đã có

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

ggplot

Đó là phức tạp hơn nhiều và xấu xí. Không phải là dễ dàng sao? sách ggplot chỉ đưa ra một số ví dụ và không khuyến khích sử dụng biểu đồ hình tròn.

Lưới thậm chí còn tồi tệ hơn, bạn cần nhiều dòng để làm cho màn hình trở nên đáng sợ.

Ai đó có thể giúp tôi có được biểu đồ hình tròn đẹp và đơn giản không? Ví dụ một cái gì đó giống như ...

example1

example2

là không có bất kỳ gói R có khả năng để làm điều đó một cách dễ dàng, mà không cần 20 dòng mã?

+4

mã rawrs tạo ra một âm mưu đáng yêu bằng cách sử dụng cơ sở R: http://stackoverflow.com/questions/26748069/ggplot2-pie-and-donut-chart-on-same-plot/26749522#26749522 - có thể đưa ra một số gợi ý (nhưng rất có thể bạn sẽ cần> 20 dòng) – user20650

+5

bánh ggplot "xấu xí" như thế nào? Sẽ dễ dàng hơn nếu bạn nói với chúng tôi những gì còn thiếu/cần được thay đổi. – scoa

+2

@skan xin vui lòng, _please_ xem xét một loạt các thông tin có sẵn miễn phí sẽ giúp bạn hiểu tại sao hai biểu đồ dưới cùng mà bạn nghĩ là "đẹp" và (tôi đoán) giao tiếp dữ liệu tốt thực sự khá kinh khủng và khá không hiệu quả đảm bảo kết quả bạn mong muốn. Tôi đánh giá cao sự bao gồm của Steve về một biểu đồ waffle và một biểu đồ thanh thực hiện sạch sẽ cũng làm khá tốt cho các dữ liệu trong chiếc bánh ban đầu của bạn. – hrbrmstr

Trả lời

9

Bạn có thể thử với pie3D() chức năng từ gói 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

nếu chỉ có là một số C4 có sẵn để thực sự phát nổ biểu đồ pie :-) – hrbrmstr

+1

Bạn có thể giải thích C4 là gì? – skan

+1

C4 là [thuốc nổ mạnh] (https://en.wikipedia.org/wiki/C-4_%28explosive%29). – RHertel

28

Tại sao không phải là square biểu đồ hình tròn?

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


Nếu bạn có nhiều khía cạnh của thông tin, tùy chọn khác có thể là sunburstR.Sử dụng browsers dữ liệu từ @rawr post bạn có thể làm:

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

enter image description here

Bạn có thể sử dụng treemap (cho một phiên bản tương tác, hãy thử @ timelyportfolio của d3treeRpackage)

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

enter image description here

Bạn cũng có thể sử dụng sơ đồ ankey (từ 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

và ví dụ sử dụng [base] (https://github.com/raredd/plotr/blob/master/R/plots.R#L804:L823) – rawr

+1

Cả hai lô đất đều tuyệt vời @Steven Beaupre –

25

Một số lời khuyên hữu ích ở đây:

Nguồn: Dark Horse Analytics: Salvaging the Pie

(srsly tho, những gì xảy ra với một biểu đồ thanh?)

Chú ý: Tôi không có ý tưởng những gì Dark Horse Analytics cũng vậy. Đây chỉ là hình ảnh demo đi kèm, chống bánh của tôi.

+2

Thịt xông khói này, tất nhiên! –

Các vấn đề liên quan