更改graphics轴上刻度线的间距?

我怎样才能改变曲线轴上刻度线的间距?

我应该使用底图或rgl使用哪些参数?

至less有两种方法可以在基本图中实现这一点(我的示例是针对x轴的,但针对y轴的工作方式相同):

  1. 使用par(xaxp = c(x1, x2, n))plot(..., xaxp = c(x1, x2, n))来定义极限刻度的位置( x1x2 )刻度线( n )之间的间隔。 因此, n+1是绘制的刻度线的数量。 (这只有在你不使用对数尺度时才有效,因为对数尺度的行为见?par 。)

  2. 您可以完全禁止轴的绘制,并稍后使用axis()添加刻度线。
    抑制轴使用plot(... , xaxt = "n")
    然后用sideatlabels调用axis()axis(side = 1, at = v1, labels = v2)side是指轴的边(1 = x轴,2 = y轴), v1是一个包含刻度位置的向量(例如,如果轴的取值范围是0,则c(1, 3, 5)到6,你需要三个标记), v2包含指定刻度标记的vector(必须与v1长度相同,例如c("group a", "group b", "group c") ) 。 有关此方法的示例,请参阅?axis和我已更新的stats.stackexchange上的post的答案 。

使用基础graphics,最简单的方法是停止绘制坐标轴的绘图function,然后自己绘制。

 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() 

我有一个数据集与时间作为X轴,强度作为Y轴。 我需要先删除除了轴标签的所有默认轴:

 plot(Time,Intensity,axes=F) 

然后我用以下方法重build剧情元素:

 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,…, seq(from =...,to =...,by =...)给我select限制和增量。

如果你不想R添加小数或零,你可以停止绘制x轴或y轴或两者都使用… axt。 然后,您可以添加自己的刻度和标签:

 plot(x, y, xaxt="n") plot(x, y, yaxt="n") axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))