当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R grid.locator 捕获鼠标点击


R语言 grid.locator 位于 grid 包(package)。

说明

允许用户在当前图形设备内单击鼠标一次,并返回当前视口内指定坐标系中鼠标单击的位置。

用法

grid.locator(unit = "native")

参数

unit

返回鼠标单击位置的坐标系。有关有效坐标系,请参阅unit 函数。

细节

该函数是模态函数(如图形包函数 locator ),因此命令行和图形绘制将被阻止,直到用户在当前设备中单击鼠标为止。

一个单位对象,表示当前视口内指定坐标系中鼠标单击的位置。

如果用户没有单击鼠标按钮 1,则该函数(不可见)返回 NULL

例子

if (dev.interactive()) {
  ## Need to write a more sophisticated unit as.character method
  unittrim <- function(unit) {
    sub("^([0-9]+|[0-9]+[.][0-9])[0-9]*", "\\1", as.character(unit))
  }
  do.click <- function(unit) {
    click.locn <- grid.locator(unit)
    grid.segments(unit.c(click.locn$x, unit(0, "npc")),
                  unit.c(unit(0, "npc"), click.locn$y),
                  click.locn$x, click.locn$y,
                  gp=gpar(lty="dashed", col="grey"))
    grid.points(click.locn$x, click.locn$y, pch=16, size=unit(1, "mm"))
    clickx <- unittrim(click.locn$x)
    clicky <- unittrim(click.locn$y)
    grid.text(paste0("(", clickx, ", ", clicky, ")"),
              click.locn$x + unit(2, "mm"), click.locn$y,
              just="left")
  }

  grid.newpage() # (empty slate)
  ## device
  do.click("inches")
  Sys.sleep(1)

  pushViewport(viewport(width=0.5, height=0.5,
                        xscale=c(0, 100), yscale=c(0, 10)))
  grid.rect()
  grid.xaxis()
  grid.yaxis()
  do.click("native")
  popViewport()
}

作者

Paul Murrell

也可以看看

viewportunitlocator(位于包 graphics 中),有关应用程序,请参阅包trellis.focuspanel.identify(位于包 lattice 中)。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Capture a Mouse Click。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。