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"
我在使用 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"