找回密码
 注册
查看: 3285|回复: 0

R语言中如何用鼠标辅助修改图形

[复制链接]
发表于 2011-1-22 21:50:04 | 显示全部楼层 |阅读模式
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 中的点信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-23 21:04 , Processed in 0.023289 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表