我无法在r中设置轴范围。我的数据在x轴上的值只有2到9,但我希望它的值从1到10。
head(SS)
Phase Bed Site ACC X.M.SA
1 1 1 1 NG NO
2 1 1 2 NG NO
3 1 1 3 SG NO
4 1 1 4 SG NO
5 1 1 5 SG NO
6 1 2 1 SG NO
XMSA<-factor(SS$X.M.SA)
ACC<-factor(SS$ACC,ordered = TRUE,levels=c("NG","SG","LG","MG","HG"))
boxplot(ACC[XMSA=="MSSA"]~SS$Bed[XMSA=="MSSA"],
xlab="Bed",ylab="Growth",
las=1, yaxt="n",ylim=c(1,5),xlim=c(1,10))
axis(2, at=c(1,2,3,4,5),labels=c("NG","SG","LG","MG","HG"),las=1)
Run Code Online (Sandbox Code Playgroud)
没有数据,我试图重现您的绘图错误:
plot(x=as.factor(2:8),y=2:8,xlim = c(1,10)
Run Code Online (Sandbox Code Playgroud)
给出以下图:
将情节更改为:
boxplot(x= as.numeric(as.character(SS$Bed[XMSA=="MSSA"])),
y= ACC[XMSA=="MSSA"]
xlab="Bed",ylab="Growth",
las=1, yaxt="n",ylim=c(1,5),xlim=c(1,10))
axis(2, at=c(1,2,3,4,5),labels=c("NG","SG","LG","MG","HG"),las=1)
Run Code Online (Sandbox Code Playgroud)
可能会解决您的问题。
看来该公式已更改为因数,并按从1到项数的顺序排序,因此我将在y轴上使用您的技巧来解决此问题。
boxplot(ACC[XMSA=="MSSA"]~SS$Bed[XMSA=="MSSA"],
xlab="Bed",ylab="Growth",
las=1, yaxt="n",ylim=c(1,5),xlim=c(0,9),xaxt="n")
axis(2, at=1:5,labels=c("NG","SG","LG","MG","HG"),las=1)
axis(1, at=0:9,labels=1:10,las=1)
Run Code Online (Sandbox Code Playgroud)