r une boîte à moustaches incliné étiquettes de l'axe des x
comment pouvez-vous faire tourner les étiquettes de l'axe des x pour la boîte à moustaches dans la r? Je sais qui code pour l'utiliser mais je ne peux pas l'appliquer:
text(**????**, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE)
Quelle variable va où j'ai des points d'interrogation? J'ai créé cette boîte à moustaches:
l'aide de ce code:
soil=read.csv("soil_temp_boxplot.csv", header=TRUE, sep=";")
tiff("soil_boxplot.tiff")
par(mar=c(5.5,3.5,0.5,0.5))
labels<-paste(c("RB-GL830-[16]-10","RB-GL830-[16]-30", "SB-GL834-[11]-10","SB-GL834-[11]-30", "RB-GL843-[17]-10","RB-GL843-[17]-30","SB-GL864-[12]-10","SB-GL864-[12]-30","SB-GL989-[10]-30", "RB-F844-[18]-10", "RB-F844-[18]-30", "SBB-F-864-[14]-10","SB-F991-[13]-10", "SB-F991-[13]-30"))
boxplot(soil$rb.gl.10.830.16, soil$rb.gl.30.830.16, soil$sb.gl.10.834.11, soil$sb.gl.30.834.11, soil$rb.gl.10.843.17, soil$rb.gl.30.843.17, soil$sb.gl.10.864.12, soil$sb.gl.30.864.12, soil$sb.gl.30.989.10, soil$rb.f.10.844.18, soil$rb.f.30.844.18, soil$sbb.f.10.864.14, soil$sb.f.10.991.13, soil$sb.f.30.991.13, yaxt="n", col=c("darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","darkolivegreen4","darkolivegreen1","burlywood2","burlywood4","burlywood2","burlywood2", "burlywood4"))
axis(1, labels = TRUE)
axis(2, c(0, 8, c(1, 2, 3, 4, 5,6,7)), las=1)
text(labels, par("usr")[3] - 0.25, srt = 45, adj = 1, labels = labels, xpd = TRUE)
mtext(2, text="Soil Temperature [°C]", line=2.2)
mtext(1, text="Location", line=4.5)
dev.off()
OriginalL'auteur samjam | 2013-09-07
Vous devez vous connecter pour publier un commentaire.
Une alternative à la suite de votre original
text
expression:Pourquoi utiliser
x = seq_along(labels)
pour les positions de labels? Lex
danstext
est un vecteur de coordonnées où mettre les étiquettes. Si vous regardez?boxplot
, vous trouvez que leat
argument est une "numérique vecteur donnant les endroits où les boxplots devrait être établi [...]; la valeur par défaut est 1:n, où n est le nombre de boîtes." Parce que nous n'avons pas spécifié de laat
argument dans leboxplot
appel, la valeur par défaut "1:n" sera utilisé. Le nombre de boîtes est bien sûr le nombre de niveaux de votre variable explicative, @Josh O'Brien utilisé dans sa réponse. Pour vous montrer une alternative, j'ai utilisé votre étiquette personnalisée vecteur lieu (ce qui, évidemment, doit avoir la même longueur que le nombre de niveaux de facteurs).seq_along
génère une séquence régulière de 1 àlength
de l'argument, ce qui correspond à la "valeur par défaut est 1:n"at
positions.Noter: vos données semblent être dans un grand format. Dans de nombreux cas dans R, il est plus pratique d'avoir les données dans un long format. Dans le
plot
fonction, il suffit alors de spécifier votre variable x (par exemple la localisation) et la variable y (p. ex. sol temp), au lieu de spécifier des données pour tous les niveau unique de x.Ça fait plaisir à entendre @samjam! Merci de voir ma petite note concernant le format de vos données dans ma mise à jour de réponse.
que c'est bon! Mais le
y = par("usr")[3] - 1
ne fonctionne pas bien dans les différentes échelles. Il est beaucoup mieux d'utilisery = par("usr")[3] - (par("usr")[4] - par("usr")[3])/30
, où la30
est la proportion de la hauteur pour être utilisé comme espace entre les étiquettes et l'axe. Fonctionne de la même manière dans n'importe quelle échelle 🙂OriginalL'auteur Henrik
Regarder la
staxlab
fonction dans le plotrix paquet, il en fait (et un autre) assez simple.OriginalL'auteur Greg Snow