更改绘图轴上刻度线的间距?

如何更改图表轴上刻度线的间距?

我应该使用什么参数的基础图或 rgl

232871 次浏览

基本图形基本图形中至少有两种方法可以实现这一点(我的例子是 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(side = 1, at = v1, labels = v2)调用 axis()side指的是轴的一侧(1 = x 轴,2 = y 轴) ,v1是一个包含刻度位置的矢量(例如,如果你的轴从0到6,你想要三个刻度) ,而 v2是一个包含指定刻度标记标签的矢量(必须与 v1长度相同,例如,side0)。参见 side1和 side2。

对于基础图形,最简单的方法是停止绘图函数绘制轴,然后自己绘制它们。

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)

然后我用以下方法重新构建情节元素:

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