Hen*_*rik 89
在基础图中至少有两种方法可以实现这一点(我的例子是针对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是一个包含刻度位置的向量(例如,c(1, 3, 5)如果你的轴的范围是0到6,你想要三个标记),v2包含指定刻度标记的标签的向量(必须与v1例如相同的长度c("group a", "group b", "group c")).见?axis和我更新的答案上stats.stackexchange一职,负责该方法的一个例子.
Rei*_*son 28
使用基本图形,最简单的方法是从绘图轴停止绘图功能,然后自己绘制它们.
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()
Run Code Online (Sandbox Code Playgroud)
小智 6
我有一个数据集,其中Time为x轴,Intensity为y轴.我需要先删除除轴标签以外的所有默认轴:
plot(Time,Intensity,axes=F)
Run Code Online (Sandbox Code Playgroud)
然后我重建了剧情的元素:
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.
Run Code Online (Sandbox Code Playgroud)
因此,at = c(...)指定放置刻度线的位置集合.在这里,我想把标记放在0,100,200,......,1000.seq(from =...,to =...,by =...)给我选择限制和增量.