我在R中有一个散点图。每个
(x,y)
点的颜色都根据其z
值着色。因此,您可以将每个点视为(x,y,z)
,其中(x,y)
确定其位置,z
沿着颜色渐变确定其颜色。我想添加两件事:
- 右侧显示颜色渐变和
z
值对应于什么颜色的图例 - 我想使用某种插值方法平滑所有颜色。换句话说,整个绘图区域(或至少大部分)应该变成彩色,看起来像一个巨大的热力图,而不是散点图。因此,在下面的示例中,周围会有很多橙色/黄色,然后有一些紫色的补丁。如果需要,我很乐意进一步澄清我正在尝试解释的内容。
x <- seq(1,150)
y <- runif(150)
z <- c(rnorm(mean=1,100),rnorm(mean=20,50))
colorFunction <- colorRamp(rainbow(100))
zScaled <- (z - min(z)) / (max(z) - min(z))
zMatrix <- colorFunction(zScaled)
zColors <- rgb(zMatrix[,1], zMatrix[,2], zMatrix[,3], maxColorValue=255)
df <- data.frame(x,y)
x <- densCols(x,y, colramp=colorRampPalette(c("black", "white")))
df$dens <- col2rgb(x)[1,] + 1L
plot(y~x, data=df[order(df$dens),],pch=20, col=zColors, cex=1)
z
值生成的,而是由(x,y)值的接近程度生成的。 - ialm