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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。