[R] densityplot and histogram

Jean Eid jeaneid at chass.utoronto.ca
Thu Oct 21 15:46:42 CEST 2004


Deepayan,

Thank you so much,... works like a charm. However, I have two more
questions:

a) in ?panel.axis is says
...: certain graphical parameters (fonts, color, etc) can be
          supplied. See the formal argument list for valid names.
I tried to change your example to have to have
	panel.axis(side = "right",
	           at = mult * at, labels = at,
        	   outside = TRUE, tck=-.5, font=2)

However, it does output an error:
	Error in panel.axis(side = "right", at = mult * at, labels = at, outside = TRUE,  :
	unused argument(s) (font ...)

When you say "See the formal argument for valid names" where do I see
these, and is there a pdf tutorial on the lattice package that I can take
a look at.


b) How do I change the xlab and yalb to bold fonts.



Thank you so much for all the help,


Jean,


On Wed, 20 Oct 2004, Deepayan Sarkar wrote:

> On Tuesday 19 October 2004 17:12, Jean Eid wrote:
> > Is there any function like par(new=T) for lattice. I want to plot a
> > histogram in percentages on the right hand side and also superimpose the
> > densityplot with its density scale on the lhs. so far I am only able to do
> > this
> >   histogram( temp[,2]~ temp[,1],nint=100,type="desnity",
> >                xlab = "Population Size",
> >                panel = function(x, ...) {
> >                    panel.histogram(x, ...)
> >                    panel.densityplot(x, col = "red", plot.points=F, lwd=2)
> >                } )
> >
> >  If I change type="density" to type="percent" the scales for the
> > densityplot will be too low and all I see is a horizontal line at zero
> > (this is as expected) . However, I tried par(new=T) and nothing happens. I
> > want to be able to put percenstages on axis 2 and density values at axis
> > 4.
>
> I don't think par(new=T) is what you should be looking for (and incidentally,
> par settings have no effect on lattice plots). It's possible to add axes
> after the plot (easier than it was before 2.0.0), but the design of lattice
> doesn't allow you to easily allocate enough space for the second set of axes.
> You can still do it, but it would be kludgy.
>
> Here's an example (you need to know what 'mult' should be -- it's the factor
> that converts the density scale to the percent scale -- it would depend on
> the widths of the bins and the length of x):
>
>
> x <- rnorm(200)
> mult <- 60 ## meaningless in this case
>
> histogram(x, type = "percent",
>           panel = function(x, ...) {
>               panel.histogram(x, ...)
>               d <- density(x)
>               panel.lines(d$x, mult * d$y, col = 'red')
>           },
>           scales = list(y = list(tck = c(1, 0))),
>           par.settings = list(layout.widths = list(right.padding = 5)))
>
> trellis.focus("panel", 1, 1, clip.off = TRUE)
>
> at <- pretty(c(0, 25)/mult)
> panel.axis(side = "right",
>            at = mult * at, labels = at,
>            outside = TRUE)
> trellis.unfocus()
>
>




More information about the R-help mailing list