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

R Hexadecimal colours do not work in 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"))

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