我正处于规划一个需要在绘图内交互式移动十字准线的功能的早期阶段。以下是一些基本的图形调用,它们将以非常笨拙的方式完成此操作:
set.seed(9)
df <- data.frame(x = rnorm(10), y = rnorm(10))
plot(df)
abline(v = 0.5, h = 1.2, col = "red") # 'original' crosshairs
loc <- locator() # click location in plot, then ESC
abline(v = 0.5, h = 1.2, col = "transparent") # clear 'original' crosshairs
abline(h = loc$x[1], v = loc$y[2], col = "green") # crosshairs at new position
我需要的是能够以精确的方式控制十字准线的位置,并返回它们的位置。在上面的示例中单击并不能真正提供足够精细的控制。我希望能够使用键盘上的左右上下箭头来走动。但我不认为 R 以这种方式“听”lrud 键(即在图形窗口中时)。如果我错了,请纠正我。我可以想象这种工作的另一种方式是十字准线跟随光标直到单击或类似的东西。
所以我正在寻找一种策略来做到这一点,使用 R 中的数据。图形 pkg 无关紧要(base、ggplot2、lattice),数据和交互功能可能是其他语言,可能显示在网络中如果需要页面。我正在考虑一种较新的交互式图形方法,例如d3
or shiny
。我已经看了一些,但真的需要定期做这类事情的人来为我指明正确的方向。
我还需要缩放和注释的能力,但我可以在最终选择的任何框架内解决这些问题。但我提到这一点是为了让那些提供答案的人知道除了我特别提到的任务之外还有其他任务。因此,也许一种特定的方法会让人觉得是“必经之路”。最后,实际数据集会很大,因此速度是一个问题。