Можно ли в базовой графике разбить метки осей на 2 строки?

Я пытаюсь разделить метки оси x на две строки. Я также хотел бы, чтобы метки были повернуты на 45 градусов. Как я могу это сделать?

Что у меня есть до сих пор:

N <- 10
dnow <- data.frame(x=1:N, y=runif(N), labels=paste("This is observation ",1:N))
with(dnow, plot(x,y, xaxt="n", xlab=""))
atn <- seq(1,N,3)
axis(1, at=atn, labels=labels[atn])

person Eduardo Leoni    schedule 08.09.2009    source источник
comment
Что значит 2 строчки? Вы имеете в виду, что хотите Это\n наблюдение...?   -  person Christopher DuBois    schedule 08.09.2009
comment
@chis_dubois Это первая часть ответа! Спасибо!   -  person Eduardo Leoni    schedule 08.09.2009


Ответы (2)



Вот что я придумал (до того, как мне исполнилось ggplot2 дней), используя базовую графику:

## data
N <- 10
dnow <- data.frame(x=1:N, y=runif(N), labels=paste("This is \nobservation ",1:N))
## make margins wide
par(mfrow=c(1,1), mar=c(10,10,6,4))
## plot without axix labels or ticks
with(dnow, plot(x,y, xaxt="n", xlab=""))
## the positions we ant to plot
atn <- seq(1,N,3)
## the label for these positions
lab <- dnow$labels[atn]
## plot the axis, but do not plot labels
axis(1, at=atn, labels=FALSE)
## plot labels
text(atn, ## x position
     par("usr")[3]-.05, ## position of the low axis
     srt=45, ## angle
     labels=lab, ##labels
     xpd=TRUE, ## allows plotting outside the region 
     pos=2)
## par("usr")[3]
person Eduardo Leoni    schedule 08.09.2009
comment
Я думаю, что это тоже важный вклад. С ggplot2 наверное это не требуется. Но это тоже хорошо. Также лучшее и элегантное решение с grid дано в книге R Graphics Пола Мюррела. - person Sam; 18.02.2011