R 在单个条上打印透明度
我目前正在尝试使用ggplot创建一个条形图,其中有一个部分透明的条形图 我有以下代码:R 在单个条上打印透明度,r,ggplot2,data.table,R,Ggplot2,Data.table,我目前正在尝试使用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"
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)
首先,按照@jazzurro的建议,将
alpha
放在aes
中。但是,您应该使用因子
来获得离散量表。然后可以手动调整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')
一个有启发性的问题和答案。其他读者可能不使用
data.table
语法,可能希望看到结果,所以我简单地修改了@shadow的答案,创建了一个带有数据框的因子,并显示下面的图
dt1 <- data.frame(yr=c(2010,2010,2011,2011), val=c(1500,3000,2000,1100), x=c("a","b","a","b"))
dt1我想你应该把alpha
放在aes
中ggplot()+geom_bar(data=dt1,aes(x=yr,y=val,fill=x,alpha=alphayr),stat=“identity”)
感谢您的快速响应。我确实尝试过,但是我认为alpha值在aes
中的工作方式不同。使用值0.5会使其非常微弱,而值0.9也不会更好。同样在aes中,它添加了另一个图例。添加绘图会更好地编辑shadow的答案(data.frame部分在我看来完全没有意义)@eddi。正确的。我没有想过编辑其他人的答案来包含情节。至于数据框部分,并不是每个人都使用data.table(我没有),我认为我所做的会帮助像我这样的人。无论如何,感谢您抽出时间发表评论。
dt1 <- data.frame(yr=c(2010,2010,2011,2011), val=c(1500,3000,2000,1100), x=c("a","b","a","b"))
dt1$alphayr <- as.factor(ifelse(dt1$yr == "2011", 0.5, 1))
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')