grid.convert
位於 grid
包(package)。 說明
這些函數采用一個單位對象並將其轉換為不同坐標係中的等效單位對象。
用法
convertX(x, unitTo, valueOnly = FALSE)
convertY(x, unitTo, valueOnly = FALSE)
convertWidth(x, unitTo, valueOnly = FALSE)
convertHeight(x, unitTo, valueOnly = FALSE)
convertUnit(x, unitTo,
axisFrom = "x", typeFrom = "location",
axisTo = axisFrom, typeTo = typeFrom,
valueOnly = FALSE)
參數
x |
一個單位對象。 |
unitTo |
單位轉換到的坐標係。有關有效坐標係,請參閱 |
axisFrom |
|
typeFrom |
|
axisTo |
與 |
typeTo |
與 |
valueOnly |
邏輯指示。如果 |
細節
convertUnit
函數允許進行通用轉換。對於最常見的轉換,其他四個函數隻是更方便front-ends。
轉換發生在當前視口內。
目前無法轉換為所有有效的坐標係(例如"strwidth" 或"grobwidth")。我不確定所有這些是否都是不可能的,在現階段它們似乎難以置信。
在正常使用網格時,這些函數應該不是必需的。如果您想以英寸而不是用戶坐標來表示位置或尺寸,那麽您應該簡單地執行類似 unit(1, "inches")
的操作,而不是類似 unit(0.134, "native")
的操作。
然而,在某些情況下,用戶需要對單位值進行計算,並且該函數變得必要。在這種情況下,請注意以下警告。
值
指定坐標係中的單位對象(除非 valueOnly
是 TRUE
,在這種情況下返回值為數字)。
警告
該轉換僅對當前設備尺寸有效。如果調整設備大小,則至少某些轉換將變得無效。例如,假設我創建一個單元對象,如下所示:oneinch <- convertUnit(unit(1, "inches"),
"native")
。現在,如果我調整設備大小,以一英寸為單位的單位對象不再對應於 1 英寸的物理長度。
例子
## A tautology
convertX(unit(1, "inches"), "inches")
## The physical units
convertX(unit(2.54, "cm"), "inches")
convertX(unit(25.4, "mm"), "inches")
convertX(unit(72.27, "points"), "inches")
convertX(unit(1/12*72.27, "picas"), "inches")
convertX(unit(72, "bigpts"), "inches")
convertX(unit(1157/1238*72.27, "dida"), "inches")
convertX(unit(1/12*1157/1238*72.27, "cicero"), "inches")
convertX(unit(65536*72.27, "scaledpts"), "inches")
convertX(unit(1/2.54, "inches"), "cm")
convertX(unit(1/25.4, "inches"), "mm")
convertX(unit(1/72.27, "inches"), "points")
convertX(unit(1/(1/12*72.27), "inches"), "picas")
convertX(unit(1/72, "inches"), "bigpts")
convertX(unit(1/(1157/1238*72.27), "inches"), "dida")
convertX(unit(1/(1/12*1157/1238*72.27), "inches"), "cicero")
convertX(unit(1/(65536*72.27), "inches"), "scaledpts")
pushViewport(viewport(width=unit(1, "inches"),
height=unit(2, "inches"),
xscale=c(0, 1),
yscale=c(1, 3)))
## Location versus dimension
convertY(unit(2, "native"), "inches")
convertHeight(unit(2, "native"), "inches")
## From "x" to "y" (the conversion is via "inches")
convertUnit(unit(1, "native"), "native",
axisFrom="x", axisTo="y")
## Convert several values at once
convertX(unit(c(0.5, 2.54), c("npc", "cm")),
c("inches", "native"))
popViewport()
## Convert a complex unit
convertX(unit(1, "strwidth", "Hello"), "native")
作者
Paul Murrell
也可以看看
相關用法
- R grid.copy 製作網格圖形對象的副本
- R grid.curve 在位置之間繪製曲線
- R grid.clip 設置剪切區域
- R grid.cap 捕獲光柵圖像
- R grid.circle 畫一個圓
- R grid.draw 畫一個網格
- R grid.stroke 描邊或填充路徑
- R grid.raster 渲染光柵對象
- R grid.points 繪製數據符號
- R grid.force 強製將一個對象放入其組件中
- R grid.display.list 控製網格顯示列表
- R grid.show.viewport 繪製網格視口圖
- R grid.segments 繪製線段
- R grid.frame 創建用於包裝對象的框架
- R grid.group 畫一個組
- R grid.pack 將對象打包在框架內
- R grid.text 繪製文字
- R grid.xspline 繪製 X 樣條線
- R grid.record 封裝計算和繪圖
- R grid.pretty 生成一組合理(“漂亮”)的斷點
- R grid.grab 抓取當前電網輸出
- R grid.show.layout 繪製網格布局圖
- R grid.DLapply 修改網格顯示列表
- R grid.delay 封裝計算並生成grob
- R grid.polygon 繪製多邊形
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Convert Between Different grid Coordinate Systems。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。