R 使用ggplot2创建等高线图时出错?
我有一个矩阵,我想画一个等高线图。首先,我尝试了R中的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
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()