私はこのようなデータフレームを持っています:
df <- data.frame(time = rep(1:10, 2),
value = c(0,0,0,0, abs(rnorm(6)),
0,0,0,0,0, abs(rnorm(5))),
group = c(rep("B", 10),
rep("A", 10)),
group_fill = c(rep("no", 7),
rep("B", 3),
rep("no", 7),
rep("A", 3)) )
これを積み上げ棒グラフとしてプロットします。
ggplot(df, aes(x = time, y = value, color= group, fill = group_fill)) +
geom_bar(stat = "identity") +
scale_color_manual(values=c("#E69F00", "#56B4E9", "#333333")) +
scale_fill_manual(values=c("#E69F00", "#56B4E9", "#FFFFFF")) +
scale_x_continuous(breaks = 1:10) +
theme_bw()
データセットから、「B」の最初の5つの観測値と「A」の最初の4つの観測値が正確にゼロであることが明らかです。
ただし、ggplotはこれらの値に少しオレンジ色のアウトラインを追加します。
最初の1:5の観測で「A」のオレンジ色の輪郭を削除するにはどうすればよいですか?
時間5〜7に塗りつぶしがない、つまりアウトラインのみが表示されるようにすることが重要です。
2番目の質問は、「グループ」の凡例を灰色ではなく青とオレンジで塗りつぶすにはどうすればよいですか。
ゼロをNAに変換するように編集されました。これは機能しているようです。
df <- data.frame(time = rep(1:10, 2),
value = c(0,0,0,0, abs(rnorm(6)),
0,0,0,0,0, abs(rnorm(5))),
group = c(rep("B", 10),
rep("A", 10)),
group_fill = c(rep("no", 7),
rep("B", 3),
rep("no", 7),
rep("A", 3)) )
df[df == 0] <- NA
ggplot(df, aes(x = time, y = value, color = group, fill = group_fill)) +
geom_bar(stat = "identity") +
scale_color_manual(values=c("#E69F00", "#56B4E9", "#333333"), guide = F) +
scale_fill_manual(values=c("#E69F00", "#56B4E9", "#FFFFFF")) +
scale_x_continuous(breaks = 1:10) +
theme_bw()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加