【问题标题】:Translate screen coordinates to graph coordinates将屏幕坐标转换为图形坐标
【发布时间】:2015-04-02 16:11:42
【问题描述】:

tl;dr: 是否有一个函数可以获得与identify()locator() 相同的输出,但无需单击鼠标(例如鼠标悬停位置)?

我正在生成绘图,并将它们保存到 PNG 文件中,然后将它们嵌入到我的应用程序中。当用户在我的应用程序中与图像交互时,我想将这些屏幕坐标发送回 R 中的图形设备,以了解用户在数据坐标中的位置。

我需要一个 identify()locator() 版本,它可以让我明确地传递鼠标坐标。

例如,如果用户悬停在像素 1000、2000 上,用户是否悬停在对应于 2015 年和出生率 90 的点上?

【问题讨论】:

  • 这已经超过 10 年了,所以很可能会有新的发展,但是fortunes::fortune(30)
  • 看看?grconvertX,它 - 足够小心 - 应该允许您实现这样的东西。 Here is an answer 我使用它和 grconvertY() 从绘图 ("user") 坐标到标准化设备 ("ndc") 坐标 - 基本上与您可能想要使用的操作相反。
  • 乔希,grconvertX 完美运行!您能否将其添加为答案,以便我将其标记为已回答以帮助未来的搜索者?我发现“开发”或设备坐标为我提供了“用户”坐标的确切像素值,这些值是图表中的值,所以反过来应该可以。好像ndc坐标基本一样,只是除以图片的宽度,以便归一化到0到1的范围,是吗?
  • 还有 Gregor,这是我收到的对一个问题的最史诗般的回答!比我早 10 年的人问了完全相同的问题,这个问题被认为足够重要,可以被收录到图书馆中,你可以准确地回忆和参考。
  • 嗨@zx8754,我确实错过了,但没有时间/兴趣写一个答案。请随意接受我的评论并将其充实为您自己的答案。

标签: r graphics plot device


【解决方案1】:

看看?grconvertX,你应该足够小心 应该允许你实现这样的东西。

Here is an answer 我用它和grconvertY() 从情节中走出来("user") 坐标到标准化设备 ("ndc") 坐标 - 基本上是 与您可能想要使用的操作相反。

– Josh O'Brien 2015 年 4 月 2 日 17:05

我发现'dev' 或设备坐标为我提供了准确的像素 'user' 坐标的值,它们是图中的值,所以 反过来应该可行。好像'ndc' 坐标基本相同,但除以宽度 图像以归一化到 0 到 1 的范围。

- 尼尔 2015 年 4 月 12 日 0:14

【讨论】: