<p>库<code>RColorBrewer</code>为=<;13种颜色提供漂亮的调色板。例如,调色板<code>BrBG</code>显示从棕色到绿色的不同颜色。</p>
<pre><code>library(RColorBrewer)
display.brewer.pal(11, "BrBG")
</code></pre>
<p><a href="https://i.stack.imgur.com/8U77f.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8U77f.png" alt="enter image description here"/></a></p>
<p>通过在中间点颜色之间创建调色板,可以将其扩展为信息量较少的调色板。</p>
<pre><code>brbg <- brewer.pal(11, "BrBG")
cols <- c(colorRampPalette(c(brbg[1], brbg[6]))(51),
colorRampPalette(c(brbg[6], brbg[11]))(51)[-1])
</code></pre>
<p><a href="https://i.stack.imgur.com/7iyte.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7iyte.png" alt="enter image description here"/></a></p>
<p>类似地,使用您选择的<code>viridis</code>和<code>magma</code>调色板,您可以尝试找到它们之间的相似性。这可能是一个点,在这里可以背对背地连接调色板。</p>
<pre><code>select.col <- function(cols1, cols2){
x <- col2rgb(cols1)
y <- col2rgb(cols2)
sim <- which.min(colSums(abs(x[,ncol(x)] - y)))
message(paste("Your palette will be", sim, "colors shorter."))
cols.x <- apply(x, 2, function(temp) rgb(t(temp)/255))
cols.y <- apply(y[,sim:ncol(y)], 2, function(temp) rgb(t(temp)/255))
return(c(cols.x,cols.y))
}
img(select.col(rev(viridis(100,0)),magma(100,0)), "")
# Your palette will be 16 colors shorter.
</code></pre>
<p><a href="https://i.stack.imgur.com/glqPf.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/glqPf.png" alt="Palette"/></a></p>