【问题标题】:How to encircle a set of points in a scatterplot and get their rows?如何在散点图中包围一组点并获取它们的行?
【发布时间】:2015-11-04 20:27:20
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以使用identify()逐个选择点
  • 问题是那个云中可能有 500 个点。
  • 你不能识别出极端的然后过滤掉中间的
  • 不确定我是否关注...

标签: r ggplot2 scatter-plot


【解决方案1】:

原则上,可以使用ggmap::gglocator() 选择一堆点,构建一个多边形,然后使用空间工具在多边形中查找点,但将这些部分组合在一起需要大量工作。如果是我,我会 (1) 从该集合中选择带有x>(-15) & y>0 (2) 的所有点,选择带有y>40-(4/3)*x 的所有点(注视形成集群左下边界的直线的截距斜率)。 (事实上​​,第 2 步可能会自行运行,而无需先运行第 1 步。)

只要多做一点工作,就可以编写一个工具来概括这一点,该工具将定义来自一对gglocator()点的边界线......

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • 你能在链接中添加一些上下文吗
    • @pancho018 - 你是这个意思吗?见更新。链接中提供了所有必需的代码 - 复制似乎很愚蠢?
    • 是的,应该这样做。总是尝试为链接提供更多解释,而不仅仅是“嘿,看看这个”stackoverflow.com/help/how-to-answer
    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2018-01-20
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多