R 使用ggplot2创建等高线图时出错?

R 使用ggplot2创建等高线图时出错?,r,ggplot2,R,Ggplot2,我有一个矩阵,我想画一个等高线图。首先,我尝试了R中的contour函数,它给出了如下所示的图 但是,等高线不平滑,x&y标签不正确。所以我想使用ggplot2来绘制平滑的等高线图。但是,ggplot2会产生一个错误: Computation failed in `stat_contour()`: Contour requires single `z` at each combination of `x` and `y`. 有关资料载于 这是我在ggplot2中尝试使用的代码: lib

我有一个矩阵,我想画一个等高线图。首先,我尝试了R中的
contour
函数,它给出了如下所示的图

但是,等高线不平滑,x&y标签不正确。所以我想使用
ggplot2
来绘制平滑的等高线图。但是,
ggplot2
会产生一个错误:

Computation failed in `stat_contour()`:
  Contour requires single `z` at each combination of `x` and `y`.

有关资料载于

这是我在
ggplot2
中尝试使用的代码:

library(reshape2)
library(ggplot2)
data1_melt = melt(data1)
names(data1_melt) <- c("y", "x", "pr")

ggplot(data1_melt, aes(x = x, y = y, z = pr)) + stat_contour()
library(重塑2)
图书馆(GG2)
数据1\u熔体=熔体(数据1)

名称(数据1_melt)错误来自重复的
y
值。如果查看原始的
data1
,您将看到重复的行名称,可能是由于舍入或小数截断。首先必须只保留唯一的值

删除重复的
y

sp <- split(data1_melt, data1_melt$x)
sp <- lapply(sp, function(DF) {
  i <- !duplicated(DF[["y"]])
  DF[i, ]
})

data1_melt <- do.call(rbind, sp)
rm(sp)

ggplot(data1_melt, aes(x = x, y = y, z = pr)) +
  geom_contour()

sp感谢您的帮助。然而,我的数据实际上包含重复值,我们如何处理?另外,你绘制的等高线图仍然不平滑,你能修复吗?谢谢。
sp <- split(data1_melt, data1_melt$x)
sp <- lapply(sp, function(DF) {
  i <- !duplicated(DF[["y"]])
  DF[i, ]
})

data1_melt <- do.call(rbind, sp)
rm(sp)

ggplot(data1_melt, aes(x = x, y = y, z = pr)) +
  geom_contour()