我正在尝试使用不同密度点为视网膜中的密度细胞制作地形图。 volcano3d
的例子非常好,它给了我这个想法,所以我想我会根据这个例子来说明我的问题。
我的问题是,如果我有一个岛的轮廓,x,y坐标绘制为geom_path
,是否可以在路径内构建等高线图?
我试着这样做,但是r告诉我问题是我的x和y轴不连续。
这是我的数据中给出一个例子的第一点,x和y是坐标,freq应该是z轴。很抱歉没有放入整个数据,但轮廓有超过3000个点,然后我有大约250个样本,所以这是一个很长的数据集。
p <- ggplot(data = contour.xy, aes(x = x, y = y)) +
geom_path(data = contour.xy, aes(x = x, y = y)) +
geom_path(data = opticnerve.xy, aes(x = x, y = y)) +
geom_contour(data = counts, aes(x = "x", y = "y", z = "freq")) +
coord_equal()
我尝试放置图像,但我是新用户,因为反垃圾邮件规定我无法附加图片。
我将非常感谢任何帮助或建议
感谢所有人的圣诞快乐
答案 0 :(得分:1)
最后,经过一些研究后发现了一个可以帮助我完成我想要的工作的包。这是由阿德里安·巴德利写的spatstat,他非常友好地帮助我完成了剧本的一部分。基本上它的作用是创建一个不规则形状的窗口,在这种情况下我的“岛”,然后我需要分析的所有点都落在窗口内。 为了创建窗口,我使用以下代码,使用x vector作为xp,y vector作为yp: map&lt; - owin(poly = list(x = xp,y = yp)) 图(图)
然后我可以创建所有点作为点模式(ppp)
非常感谢你的所有帮助,但特别感谢Adrian Baddeley的支持
答案 1 :(得分:0)
以下是volcano3d
示例(提供可重现的问题;代码来自example(direct.labels)
包中的directlabels
。
volcano3d <- melt(volcano)
colnames(volcano3d) <- c("x", "y", "z")
您可以绘制数据的等高线图,在本例中是Maunga Whau,如下所示:
(p <- ggplot(volcano3d, aes(x, y, z = z)) +
geom_contour()
)
您的示例代码也存在问题,因为aes
需要表达式,而不是字符串。所以你应该有
aes(x = x, y = y, z = freq)
或
aes_string(x = "x", y = "y", z = "freq")
通常,您不需要为x
和y
显式提供参数名称,因此事实上aes(x, y, z = freq)
会这样做。