私は次のデータを持っています:[Rグラフィッククックブックからの例]
Cultivar Date Weight sd n se big
c39 d16 3.18 0.9566144 10 0.30250803 TRUE
c39 d20 2.8 0.2788867 10 0.08819171 TRUE
c39 d21 2.74 0.9834181 10 0.3109841 TRUE
c52 d16 2.26 0.4452215 10 0.14079141 FALSE
c52 d20 3.11 0.7908505 10 0.25008887 TRUE
c52 d21 1.47 0.2110819 10 0.06674995 FALSE
バーの透明度がbig
変数に依存する棒グラフが欲しいのですが。
さまざまなalpha
値に応じてbig
値を設定しようとした次のことを試しました。
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge", stat="identity")
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge", stat="identity", alpha=cabbage_exp$big=c("TRUE"= 0.9, "FALSE" = 0.35))
ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge", stat="identity", alpha=big=c("TRUE"= 0.9, "FALSE" = 0.35))
大きな変数の値に応じて、バーの透明度を変えたいと思います。どんな助けやガイダンスも大歓迎です!
scale_alpha_discrete
を使用する別の可能性。ここで、range
引数を使用して、「big」の各レベルに必要なalpha
値を設定できます。
ggplot(data = cabbage_exp, aes(x = Date, y = Weight, fill = Cultivar, alpha = big)) +
geom_bar(position = "dodge", stat = "identity") +
scale_alpha_discrete(range = c(0.35, 0.9))
ここでの問題は、変数が離散的であるのに対し、alpha
スケールは連続的であるということです。これを行う1つの方法は、プロットする前に手動でアルファ値を計算することです。
alpha <- ifelse(d$big, 0.9, 0.35)
ggplot(d, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge", stat="identity", aes(alpha=alpha))
欠点は、アルファ値の正しい凡例が得られないことです。あなたはこれでそれを削除することができます:
ggplot(d, aes(x=Date, y=Weight, fill=Cultivar)) +
geom_bar(position="dodge", stat="identity", aes(alpha=big)) +
scale_alpha_continuous(guide=FALSE)
最終結果 :