[R] Odp: labels in a boxplot

Petr PIKAL petr.pikal at precheza.cz
Wed Oct 12 15:58:47 CEST 2011


> 
> Dear R-listers,
> 
> I have a little problem with a boxplot and I hope you can help me 
figuring
> it out.
> I'll try to make up some data to illustrate the issue. Sorry, if my
> procedures look naive, but these are my first steps in R. Any comments
> and/or suggestions are very welcome.
> 
> let's create a vector var1:
> var1 <- rnorm(100)
> 
> and 5 five logical vectors. In this case the vectors don't mean 
anything, I
> just need 5 vectors to illustrate my problem. Each of the 5 vectors
> identifies a geographic area of my interest.
> med <- var1 < -0.7275
> anglo <- var1 > -0.7275 & var1 < -0.09402
> scand <- var1 > -0.09402
> ceast <- var1 < -0.7275 & var1 > -4.10500
> seast <- var1 < 2.5 & var1 > 0.49
> 
> and let's put all the vectors together in a data frame:
> data <- data.frame(anglo, med, scand, seast, ceast, var1)
> 
> I wish to compare the samples of each region with respect to variable 
var1.
> Therefore I run:
> 
> boxplot(var1[med==1], var1[anglo==1], var1[scand==1], var1[ceast==1],
> var1[seast==1])
> 
> Let's make the chart clearer and let's add meaningful labels to the 
x-axis.
> Hence, I create a new vector containing a label for each of my 5 
dummies:
> 
>  vec <-
> 
c("Mediterranean","Anglo-Saxon","Scandinavian","Centre-East","South-East")
> 
> Now the boxplot is:
> boxplot(var1[med==1], var1[anglo==1], var1[scand==1], var1[ceast==1],
> var1[seast==1], names = vec)

This gives me output with all labels
pdf("test.pdf", 8,8)
boxplot(var1[med==1], var1[anglo==1], var1[scand==1], var1[ceast==1],
+ var1[seast==1], names = vec)
dev.off()

If you want labels to rotate in let say 45 degrees you need to use srt 
parameter to text and allow text to be written to outer margin on defined 
places. Maybe some package can do it itself (try plotrix) or go through 
http://addictedtor.free.fr/graphiques/, maybe you find some solution.

Regards
Petr


> 
> As you can see, some of the labels disappear because of the size of the
> chart (I suppose). I tried to solve the problem by changing the 
orientation
> of the labels with the las = 3 option (see below):
> boxplot(var1[med==1], var1[anglo==1], var1[scand==1], var1[ceast==1],
> var1[seast==1], names = vec, las = 3)
> 
> but the problem is not solved: the names are too long and stand 
partially
> out of the figure.
> How could I solve this problem? I have been longly google-ing and 
looking
> into reference manuals, but with no success. In Stata a simple way could 
be
> just bending each label by 45 degrees, but it seems boxplot does not 
allow
> such a solution. Furthermore I did not manage to enlarge my figure to 
place
> everything in.
> Thanks a lot in advance for all your support.
> Best wishes,
> f.
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list