是否可以将变体应用于ggvis中的属性

时间:2014-12-26 21:55:12

标签: r ggvis

我想改变依赖于变量的条形图的不透明度

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

1 个答案:

答案 0 :(得分:1)

这似乎有效......

df %>%
  ggvis(x=~x,y=~y, fillOpacity :=~ df$op) %>%
  layer_bars()

它产生了这个:

enter image description here

它基本上等同于这样做:

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)

然后你删除了条形边框,因为所有东西都用不透明颜色着色......

enter image description here