如何设置条形图的x轴

nik*_*nik 1 plot r

这已经被多次质疑,比如在R的Barplot中的这个X轴

但没有人帮助我解决我的问题

dt<- structure(c(79L, 54L, 37L, 41L, 42L, 121L, 134L, 169L, 23L, 19L, 
22L, 19L, 25L), .Names = c("Experi_1", "Experi_2", "Experi_3", 
"Experi_4", "Experi_5", "Experi_6", "Experi_7", "Experi_8", "Experi_9", 
"Experi_10", "Experi_11", "Experi_12", "Experi_13"))
Run Code Online (Sandbox Code Playgroud)

我像这样绘制我的数据

mydt<- barplot(dt)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它会覆盖x轴的两倍

axis(side=1,at=mydt[1+c(1,13)],labels=c("Experi1","Experi13"))
Run Code Online (Sandbox Code Playgroud)

它会自动设置几个x轴标签.我想手动完成,例如只提到x轴标签和结束的开头.在这种情况下,实验1和实验13.我试图理解?轴和特殊标签,但我无法将其设置为像我想要的轴标签.

Cat*_*ath 9

参数names.argbarplot功能,您可以自定义你的标签,你想要的方式.您只需要为参数指定一个名称向量,其长度与条数相同:

例如,只放置第一个和最后一个:

barplot(dt, names.arg=c("Experi_1", rep("", 11), "Experi_13"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一个例子,放5个标签:

barplot(dt, names.arg=c(names(dt)[1:5], rep("", 2), names(dt)[8:13]))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

编辑

如果你想按顺序放置标签(例子每5个),你可以这样做:

lab <- rep("", length(dt))
lab[seq(1, length(dt), by=5)] <-names(dt)[seq(1, length(dt), by=5)]
barplot(dt, names.arg=lab)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述