2017-05-08 6 views
5

次の問題があります。私は3つの係数変数と1つの数値変数をバープロットする必要があります。グループ化された棒グラフ、1つの数値と3つの階級変数

マイセット:

Site,Gall,Status,Count 
Site1,absent,unhealthy,35 
Site1,absent,healthy,1750 
Site1,present,unhealthy,23 
Site1,present,healthy,1146 
Site2,absent,unhealthy,146 
Site2,absent,healthy,1642 
Site2,present,unhealthy,30 
Site2,present,healthy,333 

私はggplotを使用してみましたが、しかしそれは私だけで、X、Y、および1つ以上のオプションを定義することができますので、私は=ガルの塗りつぶしを使用していました。

私のコードは次のように見えますが、私はまだ1つの要因変数がありません。

ggplot(dat, aes(Status, Count, fill = Gall)) + 
    geom_bar(stat = "identity", position = "dodge") 

誰でも教えてください。

ありがとう、ありがとうございました

+1

あなたは第三の要因が含まれるように、あなたのマッピングでは、 'グループ= Site'のようなものを追加することができます。 'ファセット・ラップ(facet_wrap) 'は、多くの情報を提示するためのより良い方法かもしれませんが。 –

+0

@AdamQuek - これは役に立った以上のものでしたが、私はfactorサイトのためにfacet_wrapを使用しました。私はあなたの時間の男のために、とても感謝します! – RLover

+0

[ggplot2棒グラフの複数のサブグループ](http://stackoverflow.com/questions/20060949/ggplot2-multiple-sub-groups-of-a-bar-chart)も参照してください。 – Henrik

答えて

2

いくつか解決策があります。あなたは2つの要素によって充填に意図されている場合は、interactionを使用することができます。一般的には

ggplot(dat, aes(Status, Count)) + 
    geom_col(aes(fill = interaction(Site, Gall)), position = "dodge") 

enter image description here

しかし、それは複数の要因のためにファセットを使用することをお勧めします。たとえば:

ggplot(dat, aes(Status, Count)) + 
    geom_col(aes(fill = Gall), position = "dodge") + facet_grid(Site ~ .) 

enter image description here

2

あなたは代わりに、バーのポイントを持つ方が良いかもしれません。たとえば:

library(dplyr) 
library(ggplot2) 

ggplot(dat %>% mutate(Site = gsub("([0-9]$)", " \\1", Site)), 
     aes(Status, Count, colour=Status, shape=Gall)) + 
    geom_point(size=3, position=position_dodge(0.5), stroke=1) + 
    facet_grid(~ Site, switch="x") + 
    theme_classic() + 
    theme(strip.placement = "outside", 
     strip.background=element_blank()) + 
    scale_colour_manual(values=hcl(c(195,15),100,65)) + 
    scale_shape_manual(values=c(1,16)) + 
    labs(x="") + 
    guides(colour=FALSE) 

enter image description here

+0

ありがとう、私はそのような迅速で詳細で有用な答えを期待していなかった!初めて私はこのフォーラムを使用していて、それは素晴らしいです。 – RLover

関連する問題