R十六进制颜色在ggvis中不起作用

时间:2015-05-12 19:10:54

标签: r ggvis

我一直在用ggvis摆弄并遇到这个问题,我不能使用十六进制值来表示常规R图的颜色。这是ggvis的正常行为还是我错过了什么?

library(ggvis)

# create data frame
df <- data.frame(var1=1:10,var2=5:14,var3=factor(c(rep("A",5),rep("B",5)))) 

# code without custom colours
df %>%
  ggvis(x = ~var1, y = ~var2,fill = ~var3) %>%
  layer_points(size := 30,fillOpacity := 0.5) 

#code with custom colours as text
df %>%
  ggvis(x = ~var1, y = ~var2,fill = ~var3) %>%
  layer_points(size := 30,fillOpacity := 0.5) %>%
  scale_nominal("fill",range=c("red","green"))

# code with custom colours as hexadecimal values
df %>%
  ggvis(x = ~var1, y = ~var2,fill = ~var3) %>%
  layer_points(size := 30,fillOpacity := 0.5) %>%
  scale_nominal("fill",range=c("#0000FFFF","#FF3300FF"))

1 个答案:

答案 0 :(得分:2)

您使用的8个字符代码最后包含2个额外字符,正如您所提到的,控制透明度。虽然这些可以在基数R中被识别,但ggvis期望传统的十六进制代码,即具有6个字符的代码。要获取所需的十六进制代码,只需省略当前颜色代码的最后两个字符即可。透明度通过传递给ggvis函数族的参数单独控制。