axis
位于 graphics
包(package)。 说明
向当前绘图添加一个轴,允许指定边、位置、标签和其他选项。
用法
axis(side, at = NULL, labels = TRUE, tick = TRUE, line = NA,
pos = NA, outer = FALSE, font = NA, lty = "solid",
lwd = 1, lwd.ticks = lwd, col = NULL, col.ticks = NULL,
hadj = NA, padj = NA, gap.axis = NA, ...)
参数
side |
一个整数,指定要在绘图的哪一侧绘制轴。轴的放置方式如下:1=下方,2=左侧,3=上方,4=右侧。 |
at |
要绘制刻度线的点。非有限(无限、 |
labels |
这可以是指定是否在刻度线处进行(数字)注释的逻辑值,也可以是要放置在刻度点处的标签的字符或表达式向量。 (其他对象由 |
tick |
指定是否应绘制刻度线和轴线的逻辑值。 |
line |
如果不是 |
pos |
要绘制轴线的坐标:如果不是 |
outer |
一个逻辑值,指示是否应在外部绘图边距而不是标准绘图边距中绘制轴。 |
font |
文本的字体。默认为 |
lty |
轴线和刻度线的线型。 |
lwd , lwd.ticks |
轴线和刻度线的线宽。零或负值将抑制线条或刻度线。 |
col , col.ticks |
分别表示轴线和刻度线的颜色。 |
hadj |
对与读取方向平行 (‘horizontal’) 的所有标签进行调整(请参阅 |
padj |
垂直于阅读方向调整每个刻度标签。对于平行于轴的标签, 如果 |
gap.axis |
一个可选(通常为非负)数字因子,与 ‘m’ 的大小相乘,以确定绘制的标签之间的最小间隙,请参阅“详细信息”。默认值 perpendicular <- function(side, las) { is.x <- (side %% 2 == 1) # is horizontal x-axis ( is.x && (las %in% 2:3)) || (!is.x && (las %in% 1:2)) } gap.axis <- if(perpendicular(side, las)) 0.25 else 1 当显式指定 |
... |
其他 graphical parameters 也可以作为参数传递给该函数,特别是 参数 请注意, |
细节
轴线是从 at
的最低值到最高值绘制的,但会在绘图区域被剪裁。默认情况下,仅绘制从绘图区域内的点绘制的刻度(达到舍入误差的容差),但刻度及其标签可能会延伸到绘图区域之外。使用xpd = TRUE
或xpd = NA
允许轴进一步延伸。
当 at = NULL
时,漂亮的刻度线位置是从 par("xaxp")
或 "yaxp"
和 par("xlog")
(或 "ylog"
)内部计算的(与 axTicks(side)
相同)。请注意,如果调整屏幕上绘图的大小(例如,如果设置了 plot
参数 asp
(请参阅 plot.window
),这些位置可能会发生变化。)
如果未指定 labels
,则为 at
提供或计算的数值将转换为字符串,就好像它们是由 print.default(digits = 7)
打印的数值向量一样。
该代码尽力不绘制重叠的刻度标签,因此将省略它们邻接或重叠先前绘制的标签的标签。例如,这可能会导致每隔一个刻度被标记一次。刻度从左到右或从下到上绘制,空间至少为 ‘m’ 的大小乘以gap.axis
,位于标签之间。在之前的R版本,这仅适用于写入的标签平行线到轴方向,因此不适用于例如las = 2
。使用gap.axis = -1
恢复之前的(有缺陷的)行为(在垂直情况下)。
如果设置了 line
或 pos
,则它们(而不是 par("mgp")[3]
)确定轴线和刻度线的位置,并且刻度标签将放置在 par("mgp")[2]
进一步的行中(或朝向 pos
) 边距。
有几个图形参数会影响轴的绘制方式。轴和刻度标签的垂直(对于边 1 和 3)位置由 mgp[2:3]
和 mex
控制,刻度的大小和方向由 tck
和 tcl
控制,以及刻度的外观由 cex.axis
、 col.axis
和 font.axis
标记标签,方向由 las
控制(但不是 srt
,与 S 不同,如果提供了 at
,则使用 srt
,如果未提供,则使用 las
) 。请注意,不支持adj
,并且标签始终居中。有关详细信息,请参阅par
。
值
首次绘制绘图时绘制刻度线的轴刻度上的数字位置(请参阅“详细信息”)。
调用此函数通常是因为它的副作用,即向已存在的绘图添加一个轴。
例子
require(stats) # for rnorm
plot(1:4, rnorm(4), axes = FALSE)
axis(1, 1:4, LETTERS[1:4])
axis(2)
box() #- to make it look "as usual"
plot(1:7, rnorm(7), main = "axis() examples",
type = "s", xaxt = "n", frame.plot = FALSE, col = "red")
axis(1, 1:7, LETTERS[1:7], col.axis = "blue")
# unusual options:
axis(4, col = "violet", col.axis = "dark violet", lwd = 2)
axis(3, col = "gold", lty = 2, lwd = 0.5)
# one way to have a custom x axis
plot(1:10, xaxt = "n")
axis(1, xaxp = c(2, 9, 7))
## Changing default gap between labels:
plot(0:100, type="n", axes=FALSE, ann=FALSE)
title(quote("axis(1, .., gap.axis = f)," ~~ f >= 0))
axis(2, at = 5*(0:20), las = 1, gap.axis = 1/4)
gaps <- c(4, 2, 1, 1/2, 1/4, 0.1, 0)
chG <- paste0(ifelse(gaps == 1, "default: ", ""),
"gap.axis=", formatC(gaps))
jj <- seq_along(gaps)
linG <- -2.5*(jj-1)
for(j in jj) {
isD <- gaps[j] == 1 # is default
axis (1, at=5*(0:20), gap.axis = gaps[j], padj=-1, line = linG[j],
col.axis = if(isD) "forest green" else 1, font.axis= 1+isD)
}
mtext(chG, side=1, padj=-1, line = linG -1/2, cex=3/4,
col = ifelse(gaps == 1, "forest green", "blue3"))
## now shrink the window (in x- and y-direction) and observe the axis labels drawn
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
Axis
用于通用接口。
axTicks
返回 at = NULL
对应的轴刻度位置; pretty
对于计算漂亮的刻度坐标更加灵活,并且不依赖(也不适应)所使用的坐标系。
par
中记录了几个影响外观的图形参数。
相关用法
- R axis.POSIXct 日期和日期时间绘图函数
- R axTicks 计算轴刻度线位置
- R arrows 将箭头添加到绘图中
- R abline 将直线添加到绘图中
- R assocplot 关联图
- R legend 将图例添加到绘图中
- R barplot 条形图
- R plot.histogram 绘制直方图
- R points 向绘图添加点
- R stem 茎叶图
- R mtext 将文本写入绘图的边距
- R contour 显示轮廓
- R pairs 散点图矩阵
- R stars 星图(蜘蛛图/雷达图)和线段图
- R box 在地块周围画一个方框
- R coplot 调节图
- R smoothScatter 具有平滑密度颜色表示的散点图
- R mosaicplot 马赛克图
- R bxp 从摘要中绘制箱线图
- R plot.raster 绘制光栅图像
- R curve 绘制函数图
- R plot.factor 绘制因子变量
- R sunflowerplot 制作向日葵散点图
- R plot.table 表对象的绘图方法
- R units 图形单位
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Add an Axis to a Plot。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。