Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在单个条上打印透明度_R_Ggplot2_Data.table - Fatal编程技术网

R 在单个条上打印透明度

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"

我目前正在尝试使用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)

首先,按照@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')