我很抱歉提出这个问题,但我已经在谷歌搜索并搜索了这里,但我发现没有什么有用的(这意味着绘制情节有很多不同的功能,但没有人有我的问题)。 我有一个包含我必须绘制的数据的矢量(名为“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()
这是情节:
你知道我做错了什么吗?我知道这是一个简单的问题,但我是一个初学者,有时我需要帮助:)
感谢您的关注!
答案 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="" )