web-dev-qa-db-fra.com

Comment afficher toutes les étiquettes de boîtes à moustaches

J'ai créé une boîte à moustaches, les données de gauche sont la variable continue et les données de droite ont environ 10 options uniques. Lorsque je crée le boxplot, je ne vois pas les étiquettes. Comment puis-je lui faire afficher toutes les étiquettes, éventuellement verticalement?

boxplot(data$Rate ~ as.factor(data$Purpose))

J'ai regardé autour de moi et je ne peux pas comprendre ce que j'essaie de suivre.

13
user1605665

Vous pouvez ajouter l'argument las=2 À la fonction boxplot() pour rendre toutes les étiquettes perpendiculaires à l'axe.

df<-data.frame(Rate=rnorm(100),Purpose=rep(letters[1:10],each=10))
boxplot(df$Rate~df$Purpose,las=2)

Si les noms de vos étiquettes sont longs, vous devez également ajuster les marges du tracé.

par(mar=c(7,5,1,1))
boxplot(df$Rate~df$Purpose,las=2)
35
Didzis Elferts

Lorsque vous souhaitez spécifier précisément les étiquettes de vos axes, voici la stratégie que j'utilise:

##Generate a boxplot without axes
boxplot(count ~ spray, data = InsectSprays, axes=FALSE)

##Add in a y-axis
axis(2, seq(0,25, 5), seq(0, 25, 5))

##Add in an x-axis
##las=2 changes the orientation
axis(1, 1:6, paste("Big Label", 1:6), las=2)
7
csgillespie

Il y a une entrée dans le R FAQ sur la façon de faire pivoter les étiquettes d'axe dans les graphiques de base:

http://cran.r-project.org/doc/FAQ/R-FAQ.html#How-can-I-create-rotated-axis-labels_003f

Mais je préférerais personnellement utiliser ggplot2, ce qui facilite:

data <- data.frame(Rate=rnorm(1:1000),Purpose=sample(c("foo","bar","baz"),1000,replace=TRUE))
ggplot(data, aes(x=factor(Purpose), y=Rate)) + geom_boxplot() + theme(axis.text.x  = element_text(angle=90, vjust=0.5))

enter image description here

3
juba