我想用stat_contour
制作表面图。我有lat(“x”)和long(“z”)信息和一个连续变量,如高度。我的最终目标是像this这样的情节。
数据:
x <-c(-21.035424, -21.120149, -21.059586, -21.092388,
-20.992769, -21.013030, -21.125002, -21.147202,
-21.122302, -21.072782, -21.040317, -21.117670,
-21.121831, -22.529201, -22.572593, -22.522127,
-22.566072, -22.610095, -22.586590, -22.644440,
-22.471389, -22.673909, -22.548114)
y <-c(-51.001460, -50.884732, -50.983601, -51.042580,
-50.979595, -50.808481, -50.921407, -50.884710,
-50.888586, -50.802156, -50.898742, -51.059770,
-50.918690, -51.767669, -51.774862, -51.842172,
-51.865384, -51.620441, -51.703657, -51.697475,
-51.729553, -51.522697, -51.670556)
z <- c(71.42857, 57.14286, 14.28571, 28.57143, 71.42857, 57.14286,
85.71429, 57.14286, 42.85714, 57.14286, 100.00000, 57.14286,
85.71429, 71.42857, 57.14286, 57.14286, 28.57143, 28.57143,
71.42857, 57.14286, 42.85714, 42.85714, 85.71429)
df <- data.frame(x, y, z)
我使用了以下代码:
g <- ggplot(df, aes(x=x, y=y, z=z))
g + geom_tile(aes(fill=z)) + stat_contour()
但它不起作用
Error: stat_contour requires the following missing aesthetics: z
如果我实际添加了geom_tile,为什么“z”会丢失。在stat_contour
文档中没有“z”。
答案 0 :(得分:1)
最有效的方法如下:
g <- ggplot(df, aes(x=x, y=y, z=z))
g + stat_contour(geom='tile', aes(fill=..level..), binwidth=10)
&#39; z&#39; stat_contour()正在查找轮廓的bin级别(例如高度)。
但是,当您绘制出来时,您提供的数据如下所示:
如果这是您的真实数据,那么您将无法计算轮廓,因为您没有足够的数据来确定z中的局部变量。您提供的示例(来自ggplot2文档)看起来很棒,因为它有更多的数据点。