我正在尝试用ggplot2进行一次计算。但是,我一直收到“无法生成轮廓数据”的错误消息。
为df创建数据的子集。
x<-c(2.906633,28.056680,53.206720,78.356780,103.506900,128.656900)
y<-c(15.70863,15.72898,15.74938,15.76976,15.79016,15.81058)
z<-c(142.2,148.9,135.6,144.0,142.2,136.0)
df<-data.frame(x,y,z)
ggplot(df, aes(x, y, z = z))+stat_contour()
然而,我正准备用示例图得到轮廓图。 volcano3d数据的差异是整数,而df数据是数字。
library(reshape2) # for melt
volcano3d <- melt(volcano)
names(volcano3d) <- c("x", "y", "z")
# Basic plot
v <- ggplot(volcano3d, aes(x, y, z = z))
v + stat_contour()
之前已经问过类似的问题,并用网格解决了。我的实际表是来自read.csv()的data.frame,x,y坐标来自+/- 150半径内的70个测量点。如何使用这种类型的data.frame创建网格?
使用akima包中的interp函数查找答案:Is it possible to create a 3d contour plot without continuous data in R?
x <- ww5$x
y <- ww5$y
z <- ww5$CD
require(akima)
ww_map <- interp(x,y,z)
par(mar=c(5,5,1,1))
filled.contour(ww_map)
现在剩下的问题是如何将x,y刻度设置为+/- 150?是否可以在半径为150的圆周周围生成一个圆?