Hi

Try this (Deepayan gave me this in reply to a similar question several years ago)

 bwplot(voice.part ~ height, data=singer, xlab="Height (inches)",pch = "|",
           panel = function(x, y, ...) {
               panel.bwplot(x, y, ...)
               meds <- tapply(x, y,  median)
               ylocs <- seq_along(meds)
               panel.segments(meds, ylocs - 1/4,
                              meds, ylocs + 1/4,
                              lwd = 2, col = "red")
           })

I have made the colour red as one of the lines overlays the box.

It gets a bit more involved with panel functions and horizontal  - try this

DF <-
data.frame(site = factor(rep(1:5, each = 20)),
           height = rnorm(100))

  bwplot(height~ site,DF,
         pch   = "|",
         panel = function(x, y, ..., horizontal) {

                    panel.bwplot(x, y, ...,  horizontal = horizontal)

                    if (horizontal) {

                      meds <- tapply(x, y,  median)
                      ylocs <- seq_along(meds)
                      panel.segments(meds, ylocs - 1/4,
                                     meds, ylocs + 1/4,
                                     lwd = 2, col = "red")

                    } else {

                      meds <- tapply(y, x, median)
                      xlocs <- seq_along(meds)
                      panel.segments(xlocs - 1/4, meds,
                                     xlocs + 1/4, meds,
                                     lwd = 2, col = "red")

                   } ## if (horizontal)
                 }  ## panel function
  ) ## bwplot

Regards

Duncan


Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mac...@northnet.com.au


At 13:03 11/12/2012, you wrote:
Hi,

How does one change the dot for the median in a boxplot drawn using
lattice? I have been looking at

> names(trellis.par.get())
 [1] "grid.pars"         "fontsize"          "background"
 [4] "panel.background"  "clip"              "add.line"
 [7] "add.text"          "plot.polygon"      "box.dot"
[10] "box.rectangle"     "box.umbrella"      "dot.line"
[13] "dot.symbol"        "plot.line"         "plot.symbol"
[16] "reference.line"    "strip.background"  "strip.shingle"
[19] "strip.border"      "superpose.line"    "superpose.symbol"
[22] "superpose.polygon" "regions"           "shade.colors"
[25] "axis.line"         "axis.text"         "axis.components"
[28] "layout.heights"    "layout.widths"     "box.3d"
[31] "par.xlab.text"     "par.ylab.text"     "par.zlab.text"
[34] "par.main.text"     "par.sub.text"

I tried playing around with dot.line and dot.symbol but could not
figure out what to do. Is there anything else I could try.



As a reproducible example, we can consider:

library(lattice)
bwplot(voice.part ~ height, data=singer, xlab="Height (inches)")

I want the dots for the medians to be replaced by a line through the
median.

Any suggestions?

Many thanks,
Ranjan

PS; Also, how do I get the rectangles to be filled? I tried the
following:

box.rectangle <- trellis.par.get("box.rectangle")
box.rectangle$fill<-"opaque"

(also tried "filled", "shaded", etc. to no avail)

trellis.par.set("box.rectangle",  box.rectangle)

but get errors in plotting.

Many thanks again and best wishes,
Ranjan

____________________________________________________________
FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop!

______________________________________________
R-help@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.

______________________________________________
R-help@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.

Reply via email to