R 同时提供了允许用户直接用鼠标在一个图上提取和提交信息的函数。
其中最为简单的是函数
locator():
locator(n, type)n (默认 512)个点
被选择,或者另外一个鼠标键被点击了。参数
type 允许在被选择的点上画图并且有
高级画图命令一样的效果;默认情况下不能画图。
locator() 以双分量 x 和 y 的列表
形式返回所选中点的位置信息。
locator() 常常没有参数。当我们很难设定一些图形元素
(如图例和标签)在图上的放置位置时,交互式选定
位置信息可能是一种非常好的办法。
例如,在特异点(outlying point)的旁边
标注一些提示信息,我们可以用下面的命令
> text(locator(1), "Outlier", adj=0)
(如果当前设备(如 postscript)不支持
交互式使用,则 locator() 会被自动忽略。)
identify(x, y, labels)labels 定义的标签
(在labels为空时,默认为点的索引值)放置在 x 和
y (利用鼠标左键)决定的点旁边。
当鼠标右键被点击时,
返回选择的点的索引。
有时候我们想标定一个图上的一些特定点,而不是
它们的位置。例如,我们可能期望用户能在图形显示上选择一些
有意思的点,然后以某种方式处理。
假定有两个数值向量 x 和 y 构成的一系列
坐标 (x, y),
我们可以如下使用
函数 identify():
> plot(x, y)
> identify(x, y)
函数 identify() 自己不会标识,但允许用户
简单的移动鼠标指针和在一个点附近点击鼠标左键。
如果有一个点在鼠标指针附近,那么它将会把自己的索引值
(也就是在x/y 向量中的位置)标记在点的旁边。
还有一种方案是,你可以通过 identify() 的参数 labels 设置
其他的文字信息(如样本名字等),并且可以通过参数 plot = FALSE 禁止
标记重叠在一起。在这个过程结束时(见上面),
identify() 返回所选点的索引值;
你可以利用这些索引值提取
原始向量 x 和 y 中的点信息。