轴上的标签将被覆盖

时间:2015-04-21 17:16:23

标签: r

我很抱歉提出这个问题,但我已经在谷歌搜索并搜索了这里,但我发现没有什么有用的(这意味着绘制情节有很多不同的功能,但没有人有我的问题)。 我有一个包含我必须绘制的数据的矢量(名为“rmse”),以及一个包含x轴上列的名称的矢量(名为“nomi”)。由于空间问题,我只想绘制数据,并将x轴上的标签旋转90°。 我找到了这个有用的网站:http://harding.edu/fmccown/r/ 看着它,我发现了如何旋转轴上的标签,但是,即使我有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()

这是情节:

enter image description here

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

感谢您的关注!

2 个答案:

答案 0 :(得分:0)

我解决了!只需添加“las = 2”作为轴的参数就足够了,多亏了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()

答案 1 :(得分:0)

另一种方法是使用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="" )

enter image description here