我的具体例子:我有一个数据框,比如'df',包含x坐标,y坐标,高程的列,我有一个与x / y坐标相关的降水值矢量(比如变量名是' PREC')。
我可以用:
创建一个3d表示myColorRamp <- function(colors, values) {
v <- (values - min(values))/diff(range(values))
x <- colorRamp(colors)(v)
rgb(x[,1], x[,2], x[,3], maxColorValue = 255)
}
library(rgl)
cols <- myColorRamp(c("red", "white", "blue"), prec)
plot3d(df$xcoord, df$ycoord, df$Elev, type="p", size=3, xlab='x', ylab='y', zlab='elevation', col = cols)
我希望基本上有相同图片的二维表示,而不是三维图,使用等高线表示第三维高程。
即:我想要一个等高线图: http://mathworld.wolfram.com/images/eps-gif/ContourPlot_1000.gif 但是不是指示高程大小的颜色,而是希望它表示降水量。
我看过https://stats.stackexchange.com/questions/31726/scatterplot-with-contour-heat-overlay和R: Scatterplot with too many points,但它们似乎不适用于这个特定的问题而且我正在努力应对http://stat.ethz.ch/R-manual/R-patched/library/graphics/html/filled.contour.html中给出的示例,因为我的z值是一个向量,而不是一个矩阵。
感谢任何帮助。
答案 0 :(得分:0)
您需要先将df$xcoord
,df$ycoord
,df$Elev
向量转换为matrix
。
基本上创建一个网格,并用向量中的点填充它。网格的某些点将保持NA,但这应该有效。
另见this existing stackoverflow question
编辑:所有信息也可用in this existing stackoverflow question