當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。