我目前正在尝试使用ggplot创建带有部分透明的单个条形图的条形图。
我有以下代码:
dt1 <- data.table(yr=c(2010,2010,2011,2011),
val=c(1500,3000,2000,1100),
x=c("a","b","a","b"))
ggplot() + geom_bar(data=dt1, aes(x=yr, y=val,fill=x),stat="identity") +
scale_x_continuous(breaks=dt1$yr)
这将创建一个简单的图表,该图表包含2列带有堆叠数据的列。我尝试了以下代码来调整2011年的值以具有透明度,但是我运气不佳。有指针吗?
dt1[,alphayr:=ifelse(yr==2011,.5,1)]
ggplot() + geom_bar(data=dt1, aes(x=yr, y=val,fill=x),stat="identity", alpha=dt1$alphayr) +
scale_x_continuous(breaks=dt1$yr)
最佳答案
首先,按照@jazzurro的建议,将alpha
放入aes
中。但是,您应该为此使用factor
以获得离散比例。然后,您可以手动调整Alpha比例。
ggplot() + geom_bar(data=dt1, aes(x=yr, y=val, fill=x, alpha=factor(alphayr)), stat="identity") +
scale_x_continuous(breaks=dt1$yr) +
scale_alpha_manual(values = c("0.5"=0.5, "1"=1), guide='none')