小编Kas*_*sen的帖子

在交互式绘图中提取鼠标单击的精确坐标

简而言之:我正在寻找一种方法来获取由ggplot2和呈现的交互式x/y散点图中一系列鼠标位置(点击次数)的精确坐标ggplotly.

我知道plotly(和R的其他几个交互式绘图包)可以结合使用Shiny,其中box或lazzo select可以返回所选子空间内所有数据点的列表.这份名单将是巨大的大多数但是我分析,数据集的,我需要能够在R降价格式重复地做了分析(写几个,大多不到5-6,点坐标得多可读的).此外,我必须知道点击的确切位置,以便能够在不同数据集中的相同多边形点内提取点,因此一个数据集中选择内的点列表无用.

grid.locator()从格包功能做几乎就是我正在寻找(的一个包裹在FX gglocator),但我希望有一种方法可以做到通过渲染的互动情节中的相同plotly(或者别的我就不说了因为数据集通常是巨大的(参见下图),因此能够在几次迭代分析中非常感激能够以交互方式放大和缩小数据集.

在此输入图像描述

通常情况下,我必须多次重新调整轴的大小以模拟放大和缩小,这样做很多次都会耗费精力.正如你在上面的图中所看到的,图中有很多信息需要探索(图中的内存大约为300MB).

以下是reprex我目前在grid.locator静态情节中使用的一小部分:

library(ggplot2)
library(grid)

p <- ggplot(mtcars, aes(wt, mpg)) +
  geom_point()

locator <- function(p) {
  # Build ggplot object
  ggobj <- ggplot_build(p)

  # Extract coordinates
  xr <- ggobj$layout$panel_ranges[[1]]$x.range
  yr <- ggobj$layout$panel_ranges[[1]]$y.range

  # Variable for selected points
  selection <- data.frame(x = as.numeric(), y = as.numeric())
  colnames(selection) <- c(ggobj$plot$mapping$x, ggobj$plot$mapping$y)

  # Detect and move to plot area viewport
  suppressWarnings(print(ggobj$plot))
  panels …
Run Code Online (Sandbox Code Playgroud)

interactive r ggplot2 shiny plotly

7
推荐指数
1
解决办法
1329
查看次数

标签 统计

ggplot2 ×1

interactive ×1

plotly ×1

r ×1

shiny ×1