2015-04-21 2 views
0

Прошу прощения за задание этого вопроса, но я уже искал его и искал здесь, но не нашел ничего полезного (это означает множество разных функций для рисования сюжета, но никто с моей проблемой). У меня есть вектор, содержащий данные, которые я должен наложить (с именем «rmse»), и вектор, содержащий имена столбцов на оси x (с именем «nomi»). Я просто хочу построить данные с метками на оси х, повернутой на 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', а не просто с помощью' labels' аргумент в 'axis'? – joran

+0

Что нужно с решеткой и gstat? Это потому, что 'axTicks (1)' дает '# [1] 2 4 6 8 10 12', а не 1:12, как вам нужно – rawr

+0

Благодарим вас за комментарии. Я использую текст [code] text [/ code] только потому, что видел его по ссылке, я прочитал ссылку на ось (с осью?), Но я не нашел, как вращать метки. Но для меня это нормально, даже если я использую аргумент меток. Мне нужен gstat и решетка, потому что я использую ее позже, но не для сюжета. Если это более понятно, я могу редактировать и удалять решетки и gstat. – Eugen

ответ

0

Я решил! Этого было достаточно, чтобы добавить «лаз = 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

Смежные вопросы