我试图通过stat_contour()
将轮廓线添加到我的ggplot
/ ggplot2
图中。不幸的是,我无法为您提供应该从中评估点值的真实数据。但是,另一个易于重现的示例具有相同的行为:
testPts <- data.frame(x=rep(seq(7.08, 7.14, by=0.005), 200))
testPts$y <- runif(length(testPts$x), 50.93, 50.96)
testPts$z <- sin(testPts$y * 500)
ggplot(data=testPts, aes(x=x, y=y, z=z)) + geom_point(aes(colour=z))
+ stat_contour()
这将导致以下错误消息:
if(nrow(layer_data)== 0)return()时出错:参数长度
零另外:警告消息:无法生成轮廓
数据
该示例看起来与在stackoverflow上发布的其他示例或在我的官方手册/教程中发布的其他示例没有什么不同,并且如果我为
stat_contour
提供更多规范,似乎无关紧要。看来,该函数不会按照错误消息的指示传递数据(层)。感谢您的想法和建议!
最佳答案
对于间隔不规则的数据,请使用stat_density2d
而不是stat_contour
。
library(ggplot2)
testPts <- data.frame(x=rep(seq(7.08, 7.14, by=0.005), 200))
testPts$y <- runif(length(testPts$x), 50.93, 50.96)
testPts$z <- sin(testPts$y * 500)
(ggplot(data=testPts, aes(x=x, y=y, z=z))
+ geom_point(aes(colour=z))
+ stat_density2d()
)