如何在散点图中包围一组点并获取它们的行?

时间:2015-11-04 20:27:20

标签: r ggplot2 scatter-plot

我用ggplot生成了一些图,并用变量x的大小着色它们。

我想知道下图所示的形成主要紫云的细胞的身份。

有没有办法围绕这个区域并从圆圈中的数据框中返回一个行列表?

enter image description here

2 个答案:

答案 0 :(得分:2)

原则上,人们可以使用ggmap::gglocator()来选择一堆点,构造一个多边形,然后使用空间工具来找到多边形中的点,但要将这些点放在一起需要做大量的工作。如果是我,我会(1)从该组中选择x>(-15) & y>0(2)的所有点,选择y>40-(4/3)*x所有的点(眼球截距形成左下边界线的截距斜率)簇)。 (事实上​​,第2步可能会自行运行而不先运行第1步。)

通过更多的工作,人们可以编写一个工具来概括这个来定义gglocator()点对的边界线......

答案 1 :(得分:-1)

我意识到这是一个老帖子 - 但我在这里找到了一些很好的代码来处理问题的第一部分(参见“带有环绕的散点图”):

http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html

更新:链接上下文 - 比我更聪明,更有经验的人记录了有一个函数(geom_encircle),它为问题的第一部分提供了解决方案。这个函数很好地集成到ggplot2语法中。我碰巧同时注意到这个问题和链接的网站,并且认为对于寻找相同事物的人们来说将会有用(并且不想让它看起来像我应该获得信用) 。 geom_encircle需要ggalt包。

将您直接带到页面上相关位置的完整链接: http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html#Scatterplot%20With%20Encircling