Wie erweitere ich ggplot2 Boxplot mit ggproto?
Ich benutze oft Boxplots in meiner Arbeit und magggplot2
Ästhetik. Aber Standardgeom_boxplot
ei @ 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.