Wie erweitere ich ggplot2 Boxplot mit ggproto?

Ich benutze oft Boxplots in meiner Arbeit und magggplot2 Ästhetik. Aber Standardgeom_boxplotei @ fehlen zwei Dinge, die für mich wichtig sind: die Enden der Whisker und die mittleren Bezeichnungen. Dank der Information von hier habe ich eine Funktion geschrieben:

gBoxplot <- function(formula = NULL, data = NULL, font = "CMU Serif", fsize = 18){
  require(ggplot2)
  vars <- all.vars(formula)
  response <- vars[1]
  factor <- vars[2]
  # A function for medians labelling
  fun_med <- function(x){
    return(data.frame(y = median(x), label = round(median(x), 3)))
  }
  p <- ggplot(data, aes_string(x = factor, y = response)) +
  stat_boxplot(geom = "errorbar", width = 0.6) +
  geom_boxplot() +
  stat_summary(fun.data = fun_med, geom = "label", family = font, size = fsize/3, 
                                                                         vjust = -0.1) +
  theme_grey(base_size = fsize, base_family = font)
  return(p)
}

Es gibt auch Schrifteinstellungen, aber das liegt nur daran, dass ich zu faul bin, um ein Thema zu erstellen. Hier ist ein Beispiel

gBoxplot(hwy ~ class, mpg)

Gut genug für mich, aber es gibt einige Einschränkungen (Auto-Dodging kann nicht verwendet werden usw.), und es wird besser sein, ein neues Geom basierend auf @ zu erstellegeom_boxplot. Ich habe die vignette gelesenExtending ggplot2, kann aber nicht verstehen, wie man es implementiert. Jede Hilfe wird geschätzt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage