Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在不同级别使用刻度进行绘图_R_Plot_Labels - Fatal编程技术网

R 在不同级别使用刻度进行绘图

R 在不同级别使用刻度进行绘图,r,plot,labels,R,Plot,Labels,我想知道是否有可能将刻度标签放在两个不同的级别,以避免标签之间重叠。 例如: a=c[1:10] b=c("January","February","March","April","May","June","July","August","September","October") barplot(a,space=0,axes=F) ticks=a axis(side=1, at =ticks, labels=b) 您可以尝试以下方法: a=1:10 b=c("January","Februa

我想知道是否有可能将刻度标签放在两个不同的级别,以避免标签之间重叠。 例如:

a=c[1:10]
b=c("January","February","March","April","May","June","July","August","September","October")
barplot(a,space=0,axes=F)
ticks=a
axis(side=1, at =ticks, labels=b)

您可以尝试以下方法:

a=1:10
b=c("January","February","March","April","May","June","July","August","September","October")
barplot(a,space=0,axes=F)
ticks=a

# indices of even ticks
idx <- seq(2, length(ticks), 2) 

# b2 only contains the odd labels.
b2 <- b
# Empty space so a small line gets drawn at omitted labels
b2[idx] <- ""

# draw odd labels
axis(side=1, at =ticks, labels=b2, line = 0)
# same command for even ticks, lwd = 0 suppresses drawing the x-axis twice
axis(side=1, at =ticks[idx], labels=b[idx], line = 1, lwd = 0)
这基本上避免了重叠,首先在奇数位置绘制标签,然后在偶数位置绘制标签,但由于line=1,标签稍低

你可以试着打两个axis电话,一个打奇数月,一个打偶数月,然后把他们放在不同的线路上。第一个轴调用只是绘制记号,没有标签

a=1:10
a_even <- a[a %% 2==0]
a_odd <- a[a %% 2==1]
b=c("January","February","March","April","May","June","July","August","September","October")
barplot(a,space=0,axes=F)
ticks=a
axis(side=1, at =ticks, labels=FALSE,line = 1)
axis(side=1, at =ticks[a_odd], labels=b[a_odd],line = 1,tick = FALSE)
axis(side=1, at =ticks[a_even], labels=b[a_even],line = 2,tick = FALSE)