警告....非常新手的问题如下:
我正在尝试绘制数千个(X,Y)点的相当规则的分布,每个点都与一个值相关联,我们称之为 Z,它在 -20 到 +20 之间非常不规则地变化。我对平滑不感兴趣;我希望根据平滑变化的调色板绘制点 Z 值,就像 Gnuplot 可以使用适当的平滑调色板一样。我已经尝试过 base R、ggplot2 和 latticeExtra,并且尽我所能,我可以想出以下内容,这几乎可以满足我的需求:
library(lattice)
library(latticeExtra)
library(colorRamps)
df = read.table(file"whatever", header=T)
levelplot(Z~X*Y, df, panel=panel.levelplot.points, cex=0.2,
col.regions=colorRampPalette(c("red","white","blue"))(50))
一个数据点如下所示:1302525 225167 -3.5
当我将最后一行代码中的“50”绘制为 3 时,我得到了可预测的 R 循环行为,即红色、白色和蓝色重复五次,第 16 个颜色条段为白色。将 3 更改为 7 会导致更多的红色和蓝色阴影创建 2 个重复的颜色范围段,在颜色范围尝试回收时留下两种微红色。这表明使这个数字更大会导致更精细的颜色分级。但是如果我输入一个大于 16 的数字,这就是我得到的全部,16 个彩色段,均匀地从红色变为白色,再变为蓝色。但我希望色阶更精细,在完美世界中,强制 Z 为零成为白色。
到目前为止,我对 R 的经验是,当我不能做这么简单的事情时,我错过了一个非常基本的概念。它是什么?