2

このコードはかなり最小限であり、ソリューションに微調整できるはずです。

blah <- data.frame(X1=c("Decrease Risk","Don't Know","Increase Risk","No Effect","Decrease Risk","Don't Know","Increase Risk","No Effect"),
                   X2=c("Red Meat","Red Meat","Red Meat","Red Meat","Red Meat","Red Meat","Red Meat","Red Meat"),
                   value=c(1.98,31.19,64.38,2.43,4.65,24.55,35.88,34.90),
                   status=c("Case","Case","Case","Case","Control","Control","Control","Control")
                   )

ggplot(blah, aes(X2, value, fill=X1)) + geom_bar() + coord_flip() + facet_wrap(~status) + 
    labs(x="Perceived Risk Factors", y="Percentage (%)", tilte="Some Title", fill="Responses")

ここに画像の説明を入力してください

私が欲しいのは、右側の「コントロール」の「応答」のレベルの順序が逆になっていることです。ポイントは、コントロールの場合、紫色が内側、次に青色、次に緑色、外側がピンクになるようにすることです。このようなプロットでこれを行うことは半一般的であり、変数のかなり汚い複製と順序付けられた因子レベルの変更を含む方法を考えることができますが、誰かがエレガントな解決策/アイデアを持っているかもしれないと思いましたか?

4

1 に答える 1

3

これは、秩序の美学を使用した、ややデリケートなアプローチの 1 つです。

ggplot(blah, aes(X2, value, fill = X1, 
  order = (3-as.numeric(status)*2) * as.numeric(X1))) + 
geom_bar() + coord_flip() + facet_wrap(~status) + 
labs(x="Perceived Risk Factors", y="Percentage (%)", title="Some Title", 
  fill="Responses")

ここに画像の説明を入力

2 つ以上のファセットがある場合、すべてを簡単に一般化できないため、理想的ではありません。

于 2012-10-22T07:32:57.987 に答える