我正在尝试更改ggplot条形图的不透明度。请考虑以下示例:
df <- data.frame(period = rep(c("current", "past"), 3),
type = c("so_far", "so_far", "source_x", "source_x", "source_y", "source_y"),
income = c(12, 10, 7, 9, 4, 7))
ggplot(df, aes(x = period, y = income, fill = type)) + geom_bar(stat = "identity")
实际上,虽然对于当前时期,source_x和source_y是估计值,但在过去它们是真值。所以我想改变左侧栏上蓝色和绿色部分的不透明度。 可以这样做吗?怎么样?
答案 0 :(得分:6)
虚线边框可能会更好地突出显示包含估算值的条形区域。在下面的代码中,我使用了线型和alpha美学来标记估计的两个条形部分。我还颠倒了图例,以便颜色顺序与堆叠条的颜色顺序相对应。
library(ggplot2)
ggplot(df, aes(x = period, y = income, fill = type,
linetype=ifelse(grepl("current", period) & grepl("source", type), "B", "A"),
alpha=ifelse(grepl("current", period) & grepl("source", type), 0, 1))) +
geom_bar(stat = "identity", lwd=0.5, colour="grey40") +
scale_alpha(range=c(0.5,1)) +
theme_bw() +
guides(alpha=FALSE, linetype=FALSE,
fill=guide_legend(reverse=TRUE))