Ich würde gerne einen gruppierten Boxplot mit ggplot plotten. So etwas wie das Bild unten:Boxplot in ggplot gibt unerwartete Ausgabe
Im Folgenden finden Sie eine Probe (10 Zeilen) aus meinen Daten:
alpha colsample_bytree best_F1
35 0.00 0.5 0.5825656
78 0.10 0.3 0.4716612
68 0.00 0.3 0.4714286
27 0.40 1.0 0.4786216
49 0.15 0.5 0.4943968
62 0.00 0.3 0.4938805
70 0.00 0.3 0.4849785
73 0.10 0.3 0.4997061
59 0.30 0.5 0.4856369
88 0.20 0.3 0.4552402
sort(unique(data$alpha))
0 0.1 0.15 0.2 0.3 0.4
sort(unique(data$colsample_bytree))
0.3 0.5 1
Mein Code ist folgende:
library(ggplot2)
library(ggthemes)
ggplot(data, aes(x= colsample_bytree, y = best_F1, fill = as.factor(alpha))) +
geom_boxplot(alpha = 0.5, position=position_dodge(1)) + theme_economist() +
ggtitle("F1 for alpha and colsample_bytree")
Dies erzeugt das folgende Diagramm:
und die folgende Warnung:
Warning message:
"position_dodge requires non-overlapping x intervals"
Da die Variable colsample_bytree 3 diskrete Werte annimmt und die Variable alpha dauert 6 I 3 Gruppen von Boxplots zu sehen erwarten würde --each Gruppe mit 6 Boxplots umfasst zu dem entsprechenden verschiedene Alpa-Werte und jede Gruppe, die auf einem anderen Wert von colsample_bytree positioniert ist, d 0,3, 0,5 und 1.
Ich würde erwarten, dass die Boxplots sich nicht überschneiden, wie in dem Beispiel, das ich zitiert habe.
Ihr Beispiel oben verwendet eine kategorische X-Achse – Axeman