2017-03-23 15 views
0

私は円グラフを描くことに関して質問があります。私はグループcom & yeargroup_by()を使用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 

:後
は私のcsv生データです。

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つの円グラフを描きたいと思います。 1つは年2015、もう1つは年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タイプA *、右が* 2016タイプA *です。 –

+0

したがって、 'plotly'を使うとき、ラベルは次のようになります:' labels =〜com' –

+0

あなたにgroup_by関数を追加するだけです。簡単にするために、1つのdata2016とdata2015を持つことができます。次に、p1 < - plot_ly(data2015 ...)とp2 < - plot_ly(data2016 ...)を使用します。次に、subplot(p1、p2)を使用して、両方のプロットを並べて表示します。ありがとう。 –

関連する問題