【发布时间】:2020-03-29 14:05:51
【问题描述】:
我正在努力寻找如何将标准 R 中的等高线图转换为 ggplot2 中的等高线图。
在 R 中,函数轮廓的参数是 2 个值向量和一个要绘制的值矩阵。
例如,考虑以下代码
X=seq(from=1,to=100,length=100)
Y=seq(from=300,400,length=100)
M=matrix(NA,100,100)
for (i in seq_along(X)){
for (j in seq_along(Y)){
M[i,j]=log(j)*sqrt(i)
}
}
contour(X,Y,M)
M 是一个 100x100 矩阵,每个条目是 X 和 Y 中每个元素的函数。此代码不会产生错误。
现在我正在努力将此示例转换为 ggplot。
我试试下面的代码
d=data.frame(X,Y,M)
ggplot(d,aes(x=X,y=Y,z=M))+stat_contour()
现在在我看来,变量 z 通常也是一个长度为 100 的向量。我觉得我需要做的是为 Y 中的每个元素重复向量 X,并为 X 中的每个元素重复向量 Y,这样 X 和 Y 的长度都是 100x100=10,000 个元素。但这对我来说似乎不对,我也不知道该怎么做。有没有更简单的方法可以从 R 轮廓转换为 ggplot 轮廓?
非常感谢。
【问题讨论】: