R 中的 cm.colors() 是什么调色板?
What color palette is cm.colors() in R?
Base R (grDevices
) 带有几个调色板函数,但是这些调色板的文档很差。我想知道 cm.colors()
函数映射到哪个调色板。
例如:
plot(x = mtcars[order(mtcars$wt), c("wt", "mpg")],
col = cm.colors(length(mtcars$wt)),
pch = 16, cex = 1.25)
这里是有根据的猜测。 cm
是 color map 的缩写”,(据我所知)本身是完全没有帮助的。 它是 cyan-magenta 的缩写。如果你看一下代码(这是以前的标准每当出现关于轻薄文档的投诉时,都会在 Rhelp 上做出响应)你会看到它实际上是 hsv
函数的包装器,具有特定端点的一系列颜色,这些颜色在“蓝色”的强度上没有变化。
> cm.colors
function (n, alpha, rev = FALSE)
{
if ((n <- as.integer(n[1L])) > 0L) {
even.n <- n%%2L == 0L
k <- n%/%2L
l1 <- k + 1L - even.n
l2 <- n - k + even.n
cols <- c(if (l1 > 0L) hsv(h = 6/12,
s = seq.int(0.5,
if (even.n) { 0.5/k} else{ 0},
length.out = l1),
v = 1,
alpha = alpha),
if (l2 > 1) hsv(h = 10/12,
s = seq.int(0, 0.5, length.out = l2)[-1L],
v = 1, alpha = alpha))
if (rev)
rev(cols)
else cols
}
else character()
}
<bytecode: 0x5572a94bc638>
<environment: namespace:grDevices>
> ?hsv
HSV Color Specification
Description
Create a vector of colors from vectors specifying hue, saturation and value.
所以我的预感是错误的,如下所述。
> cm.colors(2)
[1] "#80FFFF" "#FF80FF"
> col2rgb("cyan")
[,1]
red 0
green 255
blue 255
> col2rgb("magenta")
[,1]
red 255
green 0
blue 255
而且我怀疑 S/R 过去的图形人员认为我们应该知道这个颜色规范由什么组成或者我们会查找它:https://en.wikipedia.org/wiki/HSL_and_HSV
Base R (grDevices
) 带有几个调色板函数,但是这些调色板的文档很差。我想知道 cm.colors()
函数映射到哪个调色板。
例如:
plot(x = mtcars[order(mtcars$wt), c("wt", "mpg")],
col = cm.colors(length(mtcars$wt)),
pch = 16, cex = 1.25)
这里是有根据的猜测。 它是 cyan-magenta 的缩写。如果你看一下代码(这是以前的标准每当出现关于轻薄文档的投诉时,都会在 Rhelp 上做出响应)你会看到它实际上是 cm
是 color map 的缩写”,(据我所知)本身是完全没有帮助的。hsv
函数的包装器,具有特定端点的一系列颜色,这些颜色在“蓝色”的强度上没有变化。
> cm.colors
function (n, alpha, rev = FALSE)
{
if ((n <- as.integer(n[1L])) > 0L) {
even.n <- n%%2L == 0L
k <- n%/%2L
l1 <- k + 1L - even.n
l2 <- n - k + even.n
cols <- c(if (l1 > 0L) hsv(h = 6/12,
s = seq.int(0.5,
if (even.n) { 0.5/k} else{ 0},
length.out = l1),
v = 1,
alpha = alpha),
if (l2 > 1) hsv(h = 10/12,
s = seq.int(0, 0.5, length.out = l2)[-1L],
v = 1, alpha = alpha))
if (rev)
rev(cols)
else cols
}
else character()
}
<bytecode: 0x5572a94bc638>
<environment: namespace:grDevices>
> ?hsv
HSV Color Specification
Description
Create a vector of colors from vectors specifying hue, saturation and value.
所以我的预感是错误的,如下所述。
> cm.colors(2)
[1] "#80FFFF" "#FF80FF"
> col2rgb("cyan")
[,1]
red 0
green 255
blue 255
> col2rgb("magenta")
[,1]
red 255
green 0
blue 255
而且我怀疑 S/R 过去的图形人员认为我们应该知道这个颜色规范由什么组成或者我们会查找它:https://en.wikipedia.org/wiki/HSL_and_HSV