Seaborn uses matplotlib to handle outlier calculations, meaning the key parameter, whis
, is passed onto ax.boxplot
. The specific function taking care of the calculation is documented here: https://matplotlib.org/api/cbook_api.html#matplotlib.cbook.boxplot_stats. You can use matplotlib.cbook.boxplot_stats
to calculate rather than extract outliers. The follow code snippet shows you the calculation and how it is the same as the seaborn plot:
import matplotlib.pyplot as plt
from matplotlib.cbook import boxplot_stats
import pandas as pd
import seaborn as sns
data = [
('LA', 1),
('Sultan', 128),
('ElderCare', 1),
('CA', 3),
('More', 900),
]
df = pd.DataFrame(data, columns=('client', 'total'))
ax = sns.boxplot(data=df)
outliers = [y for stat in boxplot_stats(df['total']) for y in stat['fliers']]
print(outliers)
for y in outliers:
ax.plot(1, y, 'p')
ax.set_xlim(right=1.5)
plt.show()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…