R 轴上的标签将被覆盖

R 轴上的标签将被覆盖,r,R,我很抱歉问这个问题,但是我已经在这里搜索过了,但是我没有发现任何有用的东西,这意味着很多不同的绘图功能,但是没有人知道我的问题。 我有一个向量,包含我必须绘制的数据,名为rmse,还有一个向量,包含x轴上的列名,名为nomi。由于空间问题,我只想用x轴上旋转90°的标签来绘制数据。 我发现这个有用的网站: 查看它,我发现了如何在轴上旋转标签,但是,即使我有12列,我也有6列带有覆盖标签,6列没有标签 这是我的密码: library(lattice) library(gstat) nomi<

我很抱歉问这个问题,但是我已经在这里搜索过了,但是我没有发现任何有用的东西,这意味着很多不同的绘图功能,但是没有人知道我的问题。 我有一个向量,包含我必须绘制的数据,名为rmse,还有一个向量,包含x轴上的列名,名为nomi。由于空间问题,我只想用x轴上旋转90°的标签来绘制数据。 我发现这个有用的网站: 查看它,我发现了如何在轴上旋转标签,但是,即使我有12列,我也有6列带有覆盖标签,6列没有标签

这是我的密码:

library(lattice)
library(gstat)

nomi<-c("Quota","No Quota","Mare","No Mare","Slope","No Slope","Terreno","No Terreno","Facet","No Facet","Po","No Po")
rmse<-c(1.79,1.97,1.82,1.84,1.82,1.82,1.80,1.83,1.82,1.84,1.82,1.81)
g_range <- range(0, rmse)
plot(rmse, type='h',axes=F, ann=F)
axis(1, at=1:12, lab=F)
text(axTicks(1),par("usr")[3],  srt=90, adj=1, labels=nomi,  xpd=T, cex=0.8)
axis(2, las=1)
box()
下面是情节:

你知道我做错了什么吗?我知道这是一个简单的问题,但我是一个初学者,有时我需要帮助:


谢谢大家的关注

我解决了!加上las=2作为axis的参数就足够了,多亏joran建议我可以避免文本

nomi<-c("Quota","No Quota","Mare","No Mare","Slope","No Slope","Terreno","No Terreno","Facet","No Facet","Po","No Po")
rmse<-c(1.79,1.97,1.82,1.84,1.82,1.82,1.80,1.83,1.82,1.84,1.82,1.81)
g_range <- range(0, rmse)
plot(rmse, type='h',axes=F, ann=F)
axis(1, at=1:12, lab=nomi, las=2)
axis(2, las=1) 
box()

另一种方法是使用ggplot2命令生成图表

dt <- data.frame(
  rownum = 1:length(nomi),
  nomi=c("Quota","No Quota","Mare","No Mare","Slope","No Slope","Terreno","No Terreno","Facet","No Facet","Po","No Po"),
  rmse=c(1.79,1.97,1.82,1.84,1.82,1.82,1.80,1.83,1.82,1.84,1.82,1.81)
  )

library(ggplot2)                    

ggplot(dt) + aes(x =reorder(nomi,rownum), y = rmse) +  geom_bar(stat = "identity")+
  theme(axis.text.x = element_text(angle=90, face="bold", colour="black"))+
  scale_x_discrete(name="" )

为什么要尝试使用文本而不是简单地使用axis中的labels参数来绘制轴标签?需要lattice和gstat有什么关系?这是因为axTicks1给出[1]24 6 8 10 12,而不是您需要的1:12。谢谢您的评论。我使用[code]text[/code]只是因为我在链接中看到了它,我用?axis阅读了axis的参考,但我没有找到如何旋转标签。但对我来说,即使使用labels参数也没关系。我需要gstat和lattice,因为我稍后会使用它,但不会用于绘图。如果更清楚的话,我可以编辑和删除lattice和gstat。对不起,rawr,我试着在axTicks上做一些工作。我已经看到它有4个值1,2,3,4,我都试过了,但都没用。情况还是一样,或者,在选项2和4中,我只有一列上有所有的标签。我还尝试在axis中使用labels参数,但它不支持srt。我只是说Axicks不适用于您尝试执行的操作。您指定在轴上进行标记,因此需要使用相同的坐标使文本对齐。axTicks返回6个坐标,您给出了12个标签,因此这些坐标被回收,因此标签被过度标记。您的解决方案运行良好,但您是正确的,如果您需要更具体的旋转,例如,-90度、45度等,您必须在文本中使用srt,因为las将不够