/ / R: Box Plot - Oś X zbyt długa - r

R: Box Plot - Oś X zbyt długa - r

Jestem nowy w R i utworzyłem boxplot, jednak moje etykiety osi X są zbyt długie.

Czy istnieje sposób na przesunięcie boxplot w górę BEZ użycia ggplot2, ponieważ potrzebuję tego boxplota do spójnego patrzenia z innymi wykresami.

Muszę również dodać etykietę osi X i jestem świadomy mtext (...), aby dodać etykietę zamiast tego, jednak gdy próbowałem to wcześniej, miga na ekranie i znika.

Dołączę mój aktualny kod bez tytułu osi X lub tekstu, tylko długie etykiety osi X.

    ana2$B<-factor(ana2$Burn,c("N","L","S"))
with(ana2,boxplot(Time~ana2$B*Graze, ylab= "Infiltration Rate (mm/h) " , xlab=" ", names=c("1954 burn-Grazed", "Long interval-Grazed", "Short interval-Grazed", "1954 burn-Ungrazed", "Long interval-Ungrazed",  "Short interval-Ungrazed"), cex.axis=0.75, ylim=c(0, 80000 ), las=2 ))

Oś X zbyt długa na boxplot

Odpowiedzi:

0 dla odpowiedzi № 1

Zmodyfikowałem działkę, aby przechylić (zmodyfikowano)etykiety (jak sugerował @joran w komentarzach). Fragmenty Ungrazed / Grazed są oznaczone osobno. Jest to częściowo oparte na odpowiedzi na zapytanie 4+ lat temu z @Henrik (r box nachylenie etykiet x oś). Użyłem zmyślonych danych i zmontowanej struktury dla ramki danych, a także miejsca dla etykiety osi X.

labels=c("1954 burn", "Long interval",
"Short interval", "1954 burn",
"Long interval",  "Short interval")
par(mar=c(4,5,1,2))
boxplot(Time~Graze, ylim=c(0,80000),
ylab= "Infiltration Rate (mm/h) ", axes=F,
xlab=" ", data=ana2,
names=rep("",6),
las=2 )
axis(2,at=seq(0,80000,20000), labels=c("0","20k","40k","60k","80k"),las=1)
# place x labels
text(x=c(1:6)+.1, y=-5000, cex=.7, srt = 30, adj = 1.1,
labels = labels, xpd = TRUE)
box()
text(2,70000,"Grazed", cex=.8)
text(5,70000,"Ungrazed", cex=.8)
text(3.5,-30000,"Condition")

wprowadź opis obrazu tutaj