2016-12-13 6 views
0

Rニューベリーの種類はここにあるので、これが恥ずかしいほど簡単に解決するなら、私を許してください。私は棒グラフをggplot2のカテゴリ値の数を表示する方法を探しています。ggplotの棒グラフのカテゴリ値のカウント?

私は一緒にいくつかの作られたアップサンプルデータ入れている:

ID Age SizeOfTumor RemovalSurgery 
1 <30 Small No 
2 <30 Large Yes 
3 <30 Large No 
4 <30 Small No 
5 <30 Small No 
6 <30 Large Yes 
7 30-60 Large No 
8 30-60 Large Yes 
9 30-60 Large Yes 
10 30-60 Small Yes 
11 30-60 Small Yes 
12 30-60 Small No 
13 30-60 Large No 
14 30-60 Small No 
15 >60 Large Yes 
16 >60 Large Yes 
17 >60 Large Yes 
18 >60 Small Yes 
19 >60 Small No 
20 >60 Large Yes 

をし、次のコード使用してそれをプロット:

library(ggplot2) 

ggplot(df, aes(x = SizeOfTumor, fill = RemovalSurgery)) + geom_bar(position = "fill") + facet_grid(~Age) 

私は「何 a pretty standard barchart

を大量生産で有名%スケールを保持したまま、各カテゴリ変数の数値をグラフに追加することができます。

  • 私はいくつかの同様の質問を参照して、運がないgeom_textコードのいくつかの種類を試しました。
  • 私は自分自身の列としてyを持っていないという点で差があるかもしれないと思います。

アドバイスをいただければ幸いです。私は、Photoshopに入り、すべてのラベルを手動で入力する必要はありません。

+0

テキストをコピーする代わりに 'dput'を使用できますか?あなたが求めていることはかなり簡単ですが、あなたのサンプルデータをRに読み込むことは容易ではありません。 –

+0

謝罪;私は将来の質問があればそれを念頭に置いておきます。私は.csvファイルからデータをインポートする傾向があります。 –

答えて

1

この場合は、ggplotの代わりに独自の要約を行うことをおすすめします。

library(ggplot2) 
library(scales) 
library(dplyr) 

plot_data <- df %>% 
    count(SizeOfTumor, Age, RemovalSurgery) %>% 
    group_by(Age, SizeOfTumor) %>% 
    mutate(percent = n/sum(n)) 


ggplot(plot_data, aes(x = SizeOfTumor, y = percent, fill = RemovalSurgery)) + 
    geom_col(position = "fill") + 
    geom_label(aes(label = percent(percent)), position = "fill", color = "white", vjust = 1, show.legend = FALSE) + 
    scale_y_continuous(labels = percent) + 
    facet_grid(~Age) 

enter image description here

私はまた、Y_AXISのいくつかのフォーマットとscalesパッケージからpercentgeom_label内のテキストを追加しました。

+0

これを私が探していたものに絞ることができました!本当にありがとう。 –

関連する問題