如何更改绘图轴上刻度线的间距?
我应该在基础图或rgl
中使用哪些参数?
在基础图中至少有两种方法可以实现这一点(我的例子是针对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
和my updated answer to a post on stats.stackexchange for an example of this method。使用基本图形,最简单的方法是从绘图轴停止绘图功能,然后自己绘制它们。
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()
我有一个数据集,其中Time为x轴,Intensity为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"))
我刚刚发现了Hmisc包:
包含许多对数据分析,高级图形,实用程序操作,计算样本大小和功率的函数,导入和注释数据集,输入缺失值,高级表制作,变量聚类,字符串操作,R对象到LaTeX的转换有用的功能和HTML代码,以及重新编码变量。
library(Hmisc)
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th