我该如何更改绘图轴上刻度间距的间隔?
在使用基础绘图或 rgl
时,应该使用哪些参数?
在base graph
中,至少有两种方法可以实现这一点(我的例子是针对x轴的,但是对y轴同样适用):
使用par(xaxp = c(x1, x2, n))
或plot(..., xaxp = c(x1, x2, n))
来定义极端刻度线的位置(x1
和x2
)以及刻度线之间的间隔数(n
)。相应地,n+1
就是绘制的刻度线数量。(仅适用于不使用对数刻度尺的情况,有关对数刻度尺的行为,请参见?par
。)
您可以完全取消轴的绘制,并稍后使用axis()
添加刻度线。
要取消轴的绘制,请使用plot(... , xaxt = "n")
。
axis()
函数并传入 side
、at
和 labels
参数:axis(side = 1, at = v1, labels = v2)
。其中 side
指定坐标轴的位置(1 表示 x 轴,2 表示 y 轴),v1
是一个包含刻度位置信息的向量(例如,如果您的轴范围是从 0 到 6,且您需要三个刻度,则可以使用 c(1, 3, 5)
),v2
是一个包含相应刻度标签的向量(必须与 v1
长度相同,例如:c("group a", "group b", "group c")
)。请参考 ?axis
和 stats.stackexchange 上的一篇我更新过的帖子中的示例。formatC
或prettyNum
来创建字符向量以传递给labels
。例如:formatC(seq(0,2,0.5), digits = 1, format = "f")
。 - Henrikn
实际上是刻度标记的数量减 1。我想要从 1
到 9
的刻度标记,并且必须设置 xaxp = c(1, 9, 8)
才能得到期望的结果。 - ThomasHpar(xaxp...)
不起作用。只有当我把它放在plot(xaxp...)
的内部时才有效。 - Daniel Bonetti使用基础绘图,最简单的方法是停止绘制坐标轴,并自行绘制。
plot(1:10, 1:10, axes = FALSE)
axis(side = 1, at = c(1,5,10))
axis(side = 2, at = c(1,3,7,10))
box()
?par
中的图形参数 las
,它可以添加到对 axis()
的调用中,并控制刻度标签的方向。例如:axis(side = 1, at = c(1,5,10), las = 2)
。您可能想要调查是否有适用于时间序列对象的 axis()
函数,或者考虑使用 R 的日期时间类,这些类已经具有 axis()
函数(例如,类 "Date"
的 axis.Date()
)。 - Gavin Simpson我有一个数据集,其中时间为x轴,强度为y轴。首先需要删除除坐标轴标签以外的所有默认坐标轴:
plot(Time,Intensity,axes=F)
然后我使用以下代码重新构建图形元素:
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
因此,at = c(...)
指定了要放置刻度线的位置集合。 在这里,我想在 0、100、200、...、1000 的位置上放置标记。 seq(from =...,to =...,by =...)
允许我选择限制和增量。
如果您不想让R添加小数或零,可以使用...axt停止它绘制x轴或y轴或两者都不绘制。然后,您可以添加自己的刻度和标签:
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))
flag
和 yaxt=flag
的编程方式来打开或关闭此选项。但是,诀窍在于如果你想要标准标签,则设置 flag <- "s"
;如果不想要标准标签,则使用 flag <- "n"
。(我补充说明一下,因为我自己也花了一段时间才找到 "s") - Clem Wang我刚刚发现了Hmisc包:
该包含有许多有用的函数,可用于数据分析、高级图形、实用操作、计算样本大小和功率的函数、导入和注释数据集、填充缺失值、高级表格制作、变量聚类、字符串操作、将R对象转换为LaTeX和html代码以及重新编码变量。
library(Hmisc)
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th