[R] lattice histogram for multiple variables : adjusting x axis

Richard.Cotton at hsl.gov.uk Richard.Cotton at hsl.gov.uk
Tue May 12 10:52:20 CEST 2009


> I have a large data frame and I want to look at the distribution of 
> each variable very quickly by plotting an individual histogram for 
> each variable.
> I'd like to do so using lattice.
> 
> Here is a small example using the iris data set:
> 
> histogram(as.formula(paste("~",paste(colnames(iris[,!sapply(iris,is.
> factor)]),collapse="+"))),data=iris[,!sapply(iris,is.factor)])
> 
> However in this graphic, the x-axis and the breaks are the same for 
> all 4 variables. I would like them to be adjusted to the data in 
> each panel separately. I have tried using the scales argument to no 
avail:
> 
> histogram( as.formula(paste("~",paste(colnames(iris[,!sapply(iris,
> is.factor)]),collapse="+"))) ,data=iris[,!sapply(iris,is.factor)], 
> scales=list(x=list(relation="free")) )
> 
> 
> How can I individualize the x-axis and breaks for each individual panel?

You're on the right track.  If you don't specify a breaks argument, then 
histogram calculates a common axis and breaks across all the panels. 
Declaring breaks=NULL will force it to calculate them for each panel.

histogram( 
 
as.formula(paste("~",paste(colnames(iris[,!sapply(iris,is.factor)]),collapse="+"))), 

   data=iris[,!sapply(iris,is.factor)], 
   scales=list(x=list(relation="free")),
   breaks=NULL
)

You can also specify a hist-style method, e.g. breaks="Sturges" to get 
what you want.

Regards,
Richie.

Mathematical Sciences Unit
HSL



------------------------------------------------------------------------
ATTENTION:

This message contains privileged and confidential inform...{{dropped:20}}




More information about the R-help mailing list