R 自动检测散点图中的不同区域,然后提取并使用特定区域进行进一步打印

R 自动检测散点图中的不同区域,然后提取并使用特定区域进行进一步打印,r,ggplot2,shiny,R,Ggplot2,Shiny,我正在开发一个闪亮的应用程序,在其中我从一个数据帧生成各种散点图。 我希望应用程序能够检测散点图的不同区域。然后用户应该能够选择感兴趣的区域。 例如。 如图所示,蓝色点是散射点。 我希望该应用程序能够检测不同的区域,如图所示。 现在,我只是画一些垂直线和水平线,以便将所需区域子集,以便进一步绘制。这种方法非常繁忙,因为在任何情况下,数据都会发生变化,因此所需区域的位置也会发生变化 我试着使用plotly\u笔刷功能,它可以工作,但对我来说不是一个理想的方式 有没有办法自动检测散点图中的不同区域

我正在开发一个闪亮的应用程序,在其中我从一个数据帧生成各种散点图。 我希望应用程序能够检测散点图的不同区域。然后用户应该能够选择感兴趣的区域。 例如。

如图所示,蓝色点是散射点。 我希望该应用程序能够检测不同的区域,如图所示。 现在,我只是画一些垂直线和水平线,以便将所需区域子集,以便进一步绘制。这种方法非常繁忙,因为在任何情况下,数据都会发生变化,因此所需区域的位置也会发生变化

我试着使用
plotly\u笔刷
功能,它可以工作,但对我来说不是一个理想的方式

有没有办法自动检测散点图中的不同区域,并使用特定区域进行进一步处理

另外,我不能在这个问题中包括我的数据帧,因为它们太大了

以下是我的尝试:

data <- reactive({
    req(input$file)
    df <- read.table(file=input$file$datapath[input$file$name==input$Select], skip = 15, sep=input$sep, header = input$header, stringsAsFactors = input$stringAsFactors)
    updateSelectInput(session, inputId = 'xcol', label = 'X Variable',
                      choices = names(df), selected = names(df)[1])
    updateSelectInput(session, inputId = 'ycol', label = 'Y Variable',
                      choices = names(df), selected = names(df)[2])
    return(df)
  })

      x1 <- data()[, c(input$xcol1, input$ycol1)]
      x1[x1 == ""] <- NA
      M <- na.omit(x1)
      #plot
      g <- ggplot(data =  M) + theme_bw() +
        geom_point(aes_string(x= M[,1], y= (M[,2]-min(M[1,2]))),colour = "blue", size =0.1)
      g

data Hi OP.你能为你的应用程序共享一个reprex和一些代码吗?如果您的数据帧太大,没有问题-请分享一个可以使用
mtcars
diamonds
或任何其他内置数据集来说明您的问题的示例。请分享您迄今为止的编码尝试。您的算法可能有些复杂,因此不是编码服务。是的,我将提供我的代码尝试。搜索“R中的变更点检测”,有几个包。您好,OP。您可以为您的应用程序共享reprex和一些代码吗?如果您的数据帧太大,没有问题-请分享一个可以使用
mtcars
diamonds
或任何其他内置数据集来说明您的问题的示例。请分享您迄今为止的编码尝试。您的算法可能有些复杂,因此不是编码服务。是的,我将提供我的代码尝试。搜索“R中的变更点检测”,有几个包。