Erlangung der Werte im boxplot, mit python und matplotlib
Kann ich das zeichnen eines boxplots von Daten:
import numpy as np
import matplotlib.pyplot as plt
data = np.random.rand(100)
plt.boxplot(data)
Dann, die box reicht vom 25-Perzentil, 75-Perzentil, und die whisker reichen vom kleinsten Wert zum größten Wert zwischen (25- % - Perzentil - 1.5*IQR, 75-Perzentil + 1.5*IQR), wo die IQR bezeichnet die inter-Quartil-range. (Natürlich, der Wert 1.5 ist anpassbar).
Ich will jetzt wissen, die Werte, die in der boxplot, also der median, das Obere und untere Quartil, der Obere whisker-end-Punkt und der untere whisker-Ende-Punkt. Während die ersteren drei leicht zu erhalten, durch die Verwendung von np.median() und np.Perzentile(), der Endpunkt des whiskers wird einige ausführliche Codierung:
median = np.median(data)
upper_quartile = np.percentile(data, 75)
lower_quartile = np.percentile(data, 25)
iqr = upper_quartile - lower_quartile
upper_whisker = data[data<=upper_quartile+1.5*iqr].max()
lower_whisker = data[data>=lower_quartile-1.5*iqr].min()
Wunderte ich mich, dies ist zwar akzeptabel, wäre es ein eleganter Weg, dies zu tun? Es scheint, dass die Werte sollten bereit sein, um pull-out aus der boxplot, da bereits gezogen.
Danke!
Da die whisker ist eine tatsächliche Daten-Punkt in der Menge, die nicht unterschritten werden darf Recht auf die
upper_quartile + 1.5 * iqr
Wert.InformationsquelleAutor Yuxiang Wang | 2014-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum wollen Sie das tun? was Sie tun, ist schon ziemlich direkt.
Ja, wenn Sie wollen, um Sie zu Holen für die Handlung, wenn die Handlung bereits aus, verwenden Sie einfach die
get_ydata()
Methode.Gibt es ein array der Form (2) für jeden BART, das zweite element ist der Wert, den wir wollen:
InformationsquelleAutor CT Zhu