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


R axTicks 計算軸刻度線位置


R語言 axTicks 位於 graphics 包(package)。

說明

計算漂亮的刻度線位置,方法與R內部做。這僅在以下情況下才有意義:日誌坐標處於活動狀態。默認情況下,給出ataxis(side)會使用。

用法

axTicks(side, axp = NULL, usr = NULL, log = NULL, nintLog = NULL)

參數

side

1:4 的整數,如 axis

axp

長度為 3 的數字向量,默認為 par("xaxp")par("yaxp"),具體取決於 side 參數(如果 side 為 1 或 3,則為 par("xaxp"),如果邊為 2 或 4,則為 par("yaxp"))。

usr

長度為 2 的數字向量給出用戶坐標限製,默認為 par("usr") 的相關部分(分別為 (1,3) 或 (2,4) 中的 sidepar("usr")[1:2]par("usr")[3:4])。

log

邏輯指示日誌坐標是否處於活動狀態;默認為 par("xlog")par("ylog") 取決於 side

nintLog

(僅當log為真):近似的刻度間隔數(下界);默認為par("lab")[j]其中j是 1 或 2 取決於side。將其設置為Inf如果您想要與之前相同的行為R版本(2.14.x 以上)。

細節

axpusrlog 參數必須與其默認值(par(..) 結果)一致。如果指定所有三個(非 NULL),則根本不使用圖形環境。請注意,當 logTRUE 時,axp 的含義顯著不同;請參閱par(xaxp = .) 上的文檔。

axTicks()可以被視為RC函數的實現CreateAtVector()在 '..../src/main/plot.c' 被稱為axis(side, *)當沒有爭論時at指定或直接由axisTicks()(在包裝中grDevices)。
精致的 shell ,log = TRUE,現在利用axisTicks除非nintLog = Inf其存在是為了向後兼容。

可以繪製軸刻度線的坐標值的數值向量。默認情況下,當僅指定第一個參數時,這些值應與 axis(side) 將使用或已經使用的值相同。請注意,當 usr 為(“reverse axis” 情況)時,值會減小。

例子

 plot(1:7, 10*21:27)
 axTicks(1)
 axTicks(2)
 stopifnot(identical(axTicks(1), axTicks(3)),
           identical(axTicks(2), axTicks(4)))

## Show how axTicks() and axis() correspond :
op <- par(mfrow = c(3, 1))
for(x in 9999 * c(1, 2, 8)) {
    plot(x, 9, log = "x")
    cat(formatC(par("xaxp"), width = 5),";", T <- axTicks(1),"\n")
    rug(T, col =  adjustcolor("red", 0.5), lwd = 4)
}
par(op)

x <- 9.9*10^(-3:10)
plot(x, 1:14, log = "x")
axTicks(1) # now length 7
axTicks(1, nintLog = Inf) # rather too many

## An example using axTicks() without reference to an existing plot
## (copying R's internal procedures for setting axis ranges etc.),
## You do need to supply _all_ of axp, usr, log, nintLog
## standard logarithmic y axis labels
ylims <- c(0.2, 88)
get_axp <- function(x) 10^c(ceiling(x[1]), floor(x[2]))
## mimic par("yaxs") == "i"
usr.i <- log10(ylims)
(aT.i <- axTicks(side = 2, usr = usr.i,
                 axp = c(get_axp(usr.i), n = 3), log = TRUE, nintLog = 5))
## mimic (default) par("yaxs") == "r"
usr.r <- extendrange(r = log10(ylims), f = 0.04)
(aT.r <- axTicks(side = 2, usr = usr.r,
                 axp = c(get_axp(usr.r), 3), log = TRUE, nintLog = 5))

## Prove that we got it right :
plot(0:1, ylims, log = "y", yaxs = "i")
stopifnot(all.equal(aT.i, axTicks(side = 2)))

plot(0:1, ylims, log = "y", yaxs = "r")
stopifnot(all.equal(aT.r, axTicks(side = 2)))

也可以看看

axisparpretty 使用相同的算法(但獨立於圖形環境)並且有更多選項。但是它不適用於log = TRUE.

axisTicks()(包grDevices)。

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Compute Axis Tickmark Locations。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。