Ich würde gerne eine Reihe von Verteilungen von Noten vergleichen (score
), nach einigen Kategorien() gruppiert und von einigen anderen (model
) gefärbt. Ich habe mit Seaborn folgenden versucht:Tweaking seaborn.boxplot
plt.figure(figsize=(14,6))
seaborn.boxplot(x="centrality", y="score", hue="model", data=data, palette=seaborn.color_palette("husl", len(models) +1))
seaborn.despine(offset=10, trim=True)
plt.savefig("/home/i11/staudt/Eval/properties-replication-test.pdf", bbox_inches="tight")
Es gibt einige Probleme, die ich mit diesem Grundstück habe:
- Es gibt eine große Menge von Ausreißern und Ich mag nicht, wie sie hier gezeichnet werden . Kann ich sie entfernen? Kann ich das Aussehen ändern, um weniger Unordnung zu zeigen? Kann ich sie mindestens so einfärben, dass ihre Farbe der Boxfarbe entspricht?
- Der
model
Wertoriginal
ist speziell, weil alle anderen Verteilungen mit der Verteilung vonoriginal
verglichen werden sollten. Dies sollte visuell in der Handlung widergespiegelt werden. Kann ichoriginal
die erste Box jeder Gruppe machen? Kann ich es irgendwie ausgleichen oder markieren? Wäre es möglich, eine horizontale Linie durch den Median jederoriginal
Verteilung und durch die Gruppe von Kästen zu ziehen? - einige der Werte von
score
sind sehr klein, wie richtige Skalierung der y-Achse zu tun, um sie zu zeigen?
EDIT:
Hier ist ein Beispiel mit einer log-skalierten y-Achse - auch noch nicht ideal. Warum scheinen die einzelnen Boxen am unteren Ende abgeschnitten zu sein?
Die blauen Ausreißer sind ein Matplotlib-Bug und können durch Aktualisieren Ihres Seaborns vermieden werden. Aber ich würde die Ausreißer nicht einfach entfernen! – mwaskom
Haben Sie versucht [log-scaling] (http://stanford.edu/~mwaskom/software/seaborn/examples/horizontal_boxplot.html) die y-Variable? – mwaskom
@mwaskom Ja, aber das "komprimiert" die Balken mit größeren Werten ganz oben auf der Handlung. Gibt es einen Kompromiss, d. H. Log-Skalierung nur für einen Teil der Achse? – clstaudt