【发布时间】:2019-04-23 09:51:33
【问题描述】:
我有一个这样的数据框:
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 没有填充,即只有轮廓,这一点很重要。
第二个问题是如何使“组”图例充满蓝色和橙色而不是灰色?
【问题讨论】:
-
为什么不过滤掉所有值都为零的时间?
-
要替换图例填充,您可以使用
scale_color_manual(values=c("#E69F00", "#56B4E9", "#333333"), guide = guide_legend(override.aes = list(fill = c("#E69F00", "#56B4E9")))