2017-03-23 93 views
0

我有一個關於繪製餅圖的問題。
以下是我csv原始數據:R繪製2餅圖與情節

type,com,year,month,value 
type,com,year,month,value 
A,CH,2015,1,0 
A,CH,2015,2,0 
A,CH,2015,3,0 
A,CH,2015,4,0 
A,CH,2015,5,0 
A,CH,2015,6,0 
A,CH,2015,7,0 
A,CH,2015,8,2200 
A,CH,2015,9,111384 
A,CH,2015,10,28758 
A,CH,2015,11,21161 
A,CH,2015,12,0 
A,CH,2016,1,0 
A,CH,2016,2,0 
A,CH,2016,3,0 
A,CH,2016,4,0 
A,CH,2016,5,0 
A,CH,2016,6,0 
A,CH,2016,7,0 
A,CH,2016,8,0 
A,CH,2016,9,453128 
A,CH,2016,10,868256 
A,CH,2016,11,1015080 
A,CH,2016,12,650912 
A,ZU,2015,1,0 
A,ZU,2015,2,0 
A,ZU,2015,3,0 
A,ZU,2015,4,0 
A,ZU,2015,5,0 
A,ZU,2015,6,61273 
A,ZU,2015,7,27711 
A,ZU,2015,8,161780 
A,ZU,2015,9,48889 
A,ZU,2015,10,72805 
A,ZU,2015,11,131466 
A,ZU,2015,12,73756 
A,ZU,2016,1,400 
A,ZU,2016,2,0 
A,ZU,2016,3,0 
A,ZU,2016,4,0 
A,ZU,2016,5,0 
A,ZU,2016,6,0 
A,ZU,2016,7,0 
A,ZU,2016,8,10000 
A,ZU,2016,9,147533 
A,ZU,2016,10,64572 
A,ZU,2016,11,57542 
A,ZU,2016,12,0 

我用group_by()分組com & year

by_comyear <- group_by(data, com, year) 
sumdataA <- summarise(by_comyear, sum(value)) 
sumdataA 
    com year `sum(value)` 
    <fctr> <int>  <int> 
1  CH 2015  163503 
2  CH 2016  2987376 
3  ZU 2015  577680 
4  ZU 2016  280047 

但是,我想繪製2個餅圖。一個用於年2015年,另一個用於年2016年
我怎樣才能繪製包情節plot_ly()功能
也許我應該分開sumdataA爲2?

非常感謝。

回答

1

不是很清楚你想要在餅圖中繪製什麼。這僅僅是一個年份的基本例子。你可以使用:

library(ggplot2) 
library(plotly) 
df <- data.frame(COM = c("ch", "ch", "zu","zu"), year = c("2015", "2016","2015", "2016"), values= c(100,125,65,17)) 
data2015 <- filter(df, year == "2015") 
data2016 <- filter(df, year == "2016") 

plot_ly(data2015, labels = ~COM, values = ~ values, type = "pie", domain = list(x = c(0, 0.5), y = c(0, 1))) %>% 
    add_trace(data = data2016, labels = ~COM, values = ~ values, type = "pie", domain = list(x = c(0.5, 1), y = c(0, 1))) 

結果: enter image description here

+0

哦,U [R這麼好看。但實際上,我只是過濾了我原始數據的一小部分,並以此爲例提出問題。 'com'中至少有5個關卡。我的目標是繪製2個地塊。 U可以忽略'typeB',只關注'typeA'。我希望彼此之間有2個餅圖,左邊是* 2015 typeA *,右邊是* 2016 typeA *。 –

+0

因此,當使用'plotly'時,標籤應該是這樣的:'labels =〜com' –

+0

只需將COM添加到您的group_by函數。爲了簡單起見,你可以有一個data2016和data2015。然後使用p1 < - plot_ly(data2015 ...)和p2 < - plot_ly(data2016 ...)。然後使用子圖(p1,p2)並排繪製兩個圖。 –