我想根据变量改变条形的不透明度
library(dplyr)
library(ggvis)
df <- data.frame(x=c(1,2),y=c(6,3),op=c(0.2,0.8))
df %>%
ggvis(x=~x,y=~y) %>%
layer_bars(opacity:=~op)
产生错误
Error in eval(expr, envir, enclos) : object 'op' not found
这似乎有效....
df %>%
ggvis(x=~x,y=~y, fillOpacity :=~ df$op) %>%
layer_bars()
它产生这个:
它基本上相当于这样做:
df %>%
ggvis(x=~x,y=~y, fillOpacity :=~ c(0.2,0.8)) %>%
layer_bars()
并且有效,因为每个 y 变量都分配了一个值。我不确定为什么以下不起作用,在我看来它应该。也许有人可以启发...
df %>%
ggvis(x=~x,y=~y, fillOpacity :=~ op) %>%
layer_bars()
或者,使用您的代码,如果您这样做...
df %>%
ggvis(x=~x,y=~y) %>%
layer_bars(opacity:=~df$op)
然后你删除删除栏的边框,因为一切都用不透明度颜色着色......