ggplot2 icon indicating copy to clipboard operation
ggplot2 copied to clipboard

Feature request: additional control over boxplot graphical features

Open teunbrand opened this issue 1 year ago • 1 comments

The base R boxplot has additional control over several graphical features of the boxplots compared to geom_boxplot(). I've searched the issues if this has been mentioned before, but couldn't find it, so I'll summarise here.

These features are:

  • Staples, the little horizontal lines at the end of the whiskers. Along with staple parameters:
    • staplewex Size of staples relative to box width
    • staplelty Linetype of staples
    • staplelwd Linewidth of staples
    • staplecol Colour of staples
  • Whisker parameters:
    • whisklty Linetype of whiskers
    • whisklwd Linewidth of whiskers
    • whiskcol Colour of whiskers
  • Median line parameters:
    • medlty Linetype of median line
    • medcol The colour of the median line (see also #3459)
  • Option for drawing a point at the median, along with parameters:
    • medpch shape of the median point
    • medcex size of the median point
    • medbg fill of the median point

A little bit to my surprise, geom_boxplot() does support the medlwd linewidth of the median line through the fatten argument that is documented in geom_crossbar() (but not in geom_boxplot()).

Probably, it isn't worthwhile to support the median point, because it is easily added with stat_summary(fun = median).

However, I do think it might be worthwhile to implement staples and the extra parameters for whiskers and the median line. These should use e.g. whisker.linetype, median.colour etc. instead of the base R names. Moreover, an alias for fatten might help make it more clear that this refers to the median line.

I don't think these should be mapped aesthetics, rather I'd see them as static parameters similar to the outlier parameters that are inherited from the main boxplot aesthetics by default.

If the maintainers agree, I can put together a PR to review.

teunbrand avatar Dec 30 '22 14:12 teunbrand

Also came across this that seems to be related: #4892

teunbrand avatar Jan 05 '23 20:01 teunbrand