Matplotlib - Wie kann ich festlegen ylim() für eine Serie von plots?
Habe ich eine Reihe von box-plots, den ich versuche zu machen, von denen jede einen anderen Bereich. Ich habe versucht, ylim durch die Bestimmung des max und min von jeder separaten Serie. Aber, die min-in vielen Fällen ist ein Ausreißer, und so die Handlung komprimiert. Wie kann ich wählen Sie das gleiche limit verwendet wird, durch die "whiskers" der Handlung (plus eine kleine Marge)?
ZB jetzt ich bin dabei:
[In]
ax = df['feature'].boxplot()
ymax = max(df['feature']
ymin = min(df['feature']
ax.set_ylim([ymax,ymin])
Ich würde gerne ymax, ymin, um die barthaare von den box-plot.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als eine alternative zu dem, was @unutbu vorgeschlagen, Sie könnten vermeiden Sie, Plotten Sie die Ausreißer und dann verwenden
ax.margins(y=0)
(oder ein paar kleineeps
) skalieren", um die Grenzen zu dem Bereich der barthaare.Beispiel:
Und wenn man möchte ein wenig Platz um den größten "Whisker" verwenden
ax.margins(0.05)
hinzufügen, 5% vom Messbereich statt 0% der Bereich:Könnten Sie untersuchen die barthaare (
maplotlib.lines.Line2D
Objekte) zurückgegebendf.boxplot()
. Zum Beispiel, wenn Sie anrufendann
bp['whiskers']
wird eine Liste vonLine2D
Objekte. Finden Sie diey-values
für jede Zeile mitund verwenden Sie dann
yval.min()
undyval.max()
zu bestimmen, die gewünschtey-limits
.Beispielsweise
Erträge
Konnten Sie
showfliers=False
im boxplot, so dass die Ausreißer nicht bekommen, aufgetragen.Da Fragen Sie gezielt über die schnurrhaare, dies ist, wie Sie berechnet werden, mit einem Standard von 1,5:
Könnten Sie tun die gleiche Berechnung aus und legen Sie Ihre
ylim
zu.