stat_countour()无法生成轮廓线(ggplot2)

时间:2014-10-01 20:25:33

标签: r ggplot2

人:

我似乎无法使用ggplot2的stat_countour()命令生成等高线图。以下是我正在尝试做的一个例子:

df <- data.frame(matrix(NA, nrow = 100, ncol = 3))
names(df) <- c("X","Y","Z")
df$X <- seq(0,1, by=1/99)
df$Y <- seq(0,1, by=1/99)
df$Z <- exp(0.8*log(df$X) + 0.2*log(df$Y))

v <- ggplot(df, aes(x=C, y=Y, z = Z))
v + stat_contour()

我遇到了可怕的Not possible to generate contour data错误。我所看到的一切似乎暗示当矩阵不规则时会出现这个错误 - 但是,根据定义,我的X和Y似乎是规则的。

我试过stat_density()也没有成功。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:4)

在您发布的代码中,您没有定义网格,而是定义X等于Y的数据框。您可以使用expand.grid函数创建网格,然后将Z定义为X和Y的某些函数:

library(ggplot2)
dat <- expand.grid(X=seq(0,1, by=1/99), Y=seq(0,1,by=1/99))
dat$Z <- exp(0.8*log(dat$X) + 0.2*log(dat$Y))
ggplot(dat, aes(x=X, y=Y, z=Z))+stat_contour()

enter image description here

相关问题