R 和 ggvis 中的命名颜色

Named colors in R and ggvis

我在使用 ggvis 包时遇到了 R's named colors 的问题。例如,如果我将 ggvis fill 属性 设置为 "cadetblue" 它有效,但如果我将其设置为 "cadetblue1" 它则无效。这是一个可重现的小例子:

library(ggvis)
pressure %>% ggvis(~temperature, ~pressure, fill := "cadetblue") %>% layer_bars()

当我将填充 属性 更改为 "cadetblue1" 时,图变黑了。使用 ggvis 时,似乎只有名称中没有数字的主要命名颜色有效。有人知道为什么或者我在这里误解了什么吗?

您可以使用任何 HTML hex color code 作为颜色。例如,尝试

pressure %>% ggvis(~temperature, ~pressure, fill := "#FFFF00") %>% layer_bars()

对于黄色或"#5f9ea0"对于学员蓝色,依此类推...

绘图变成黑色是因为 R 无法将您的颜色输入识别为有效并且默认为黑色。

我不知道为什么会这样,但是您可以通过将名称转换为十六进制来使用命名的颜色。

  • col2rgb 将颜色名称转换为其 8 位数字 rgb 值(以 10 为基数呈现)。
  • rgb 获取 col2rgb 的输出(在使用 t(转置)从列向量转换为行向量之后)并将它们转换为相应的十六进制颜色代码。

因此,在您的情况下,代码将是:

fill := rgb(t(col2rgb("cadetblue1")), maxColorValue=255)

或者,查看各个步骤:

x = t(col2rgb("cadetblue1"))
     red green blue   
[1,] 152   245  255
rgb(x, maxColorValue=255)
[1] "#98F5FF"