12.3 交互使用图形环境

R 同时提供了允许用户直接用鼠标在一个图上提取和提交信息的函数。其中最为简单的是函数 locator()

locator(n, type)
  • 等待用户用鼠标左键点击当前图上的特定位置。这个过程直到 n (默认512)个点被选择,或者另外一个鼠标键被点击 了。参数 type 允许在被选择的点上画图并且有高级画图命 令一样的效果;默认情况下不能画图。locator() 以双分量 xy 的列表形式返回所选中点的位置信息。

locator() 常常没有参数。当我们很难设定一些图形元素(如图例和标签)在图上的放置位置时,交互式选定位置信息可能是一种非常好的办法。例如,在特异点 (outlying point)的旁边标注一些提示信息,我们可以用下面的命令

> text(locator(1), "Outlier", adj=0)

(如果当前设备(如 postscript)不支持交互式使用,则 locator() 会被自动忽略。)

identify(x, y, labels)
  • 允许用户将 labels 定义的标签(在 labels 为空时,默认为点的索引值)放置在由 xy (利用鼠标左键)决定的点旁边。当鼠标右键被点击时,返回被选择点的索引。

有时候我们想标定一个图上的一些特定点,而不是它们的位置。例如,我们可能期望用户能在图形显示上选择一些有意思的点,然后以某种方式处理。假定有两个数值向量 xy 构成的一系列坐标(x, y),我们可以如下使用函数 identify()

> plot(x, y)
> identify(x, y)

函数 identify() 自己不会标识,但允许用户简单的移动鼠标指针和在一个点附近点击鼠标左键。如果有一个点在鼠标指针附近,那么它将会把自己的索引值(也就是在 x/y 向量中的位置)标记在点的旁边。还有一种方案是,你可以通过 identify() 的参数labels 设置其他的文字信息(如样本名字等),并且可以通过参数 plot = FALSE 禁止标记重叠在一起。在这个过程结束时(见上面),identify() 返回所选点的索引值;你可以利用这些索引值提取原始向量 xy 中的点信息。

results matching ""

    No results matching ""