2015-04-21 169 views
0

我是问这个问题很抱歉,但我已经用Google搜索和搜索在这里,但我没有发现任何有用的(这意味着许多不同的功能绘制的情节,但没有人与我的问题)。 我有一个包含我必须绘制的数据(名为“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

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

感谢您的关注!

+0

有什么理由你想使用'text'而不是简单地使用'axis'的'labels'参数绘制轴标签? – joran

+0

什么需要格和gstat?这是因为'axTicks(1)'给出了'#[1] 2 4 6 8 10 12''而不是像你需要的那样1:12 – rawr

+0

谢谢你的评论。我使用[code] text [/ code]仅仅是因为我在链接中看到了它,我读了轴的参考(带有?轴),但我没有找到如何旋转标签。但即使使用标签参数,对我来说也没关系。我需要gstat和格子,因为我稍后使用它,但不适用于情节。如果更清楚我可以编辑并移除格子和gstat。 – Eugen

回答

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() 
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