带有stat_contour的曲面图:缺少美学z

时间:2014-04-30 19:49:04

标签: r ggplot2

我想用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”。

1 个答案:

答案 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级别(例如高度)。

但是,当您绘制出来时,您提供的数据如下所示: enter image description here

如果这是您的真实数据,那么您将无法计算轮廓,因为您没有足够的数据来确定z中的局部变量。您提供的示例(来自ggplot2文档)看起来很棒,因为它有更多的数据点。