我需要获取生成的统计数据,以便在Pandas中绘制箱线图(使用矩形框创建箱线图)。即Quartile1,Quartile2,Quartile3,下须值,上须值和离群值。我尝试了以下查询来绘制箱线图。
import pandas as pd
df = pd.DataFrame(np.random.rand(100, 5), columns=['A', 'B', 'C', 'D', 'E'])
pd.DataFrame.boxplot(df,return_type = 'both')
有没有一种方法来代替手动计算值?
2条答案
按热度按时间jc3wubiy1#
一种选择是使用图中的y数据-可能对离群值(飞行器)最有用
但使用以下任一方法获取其他值(包括IQR)可能更直接
或者,正如WoodChopper所建议的,
eeq64g8w2#
matplotlib.cbook.boxplot_stats
,它返回用于使用matplotlib.axes.Axes.bxp
绘制一系列箱线图的统计字典列表array
传递给boxplot_stats
。pandas
特有的。pandas
的默认绘图引擎是matplotlib
,因此使用boxplot_stats
将返回pandas.DataFrame.plot.box
的正确度量。df.values
将感兴趣的数字列作为array
传递给boxplot_stats
。NaN
值。*在
python 3.11.4
、pandas 2.1.0
、matplotlib 3.7.2
中测试array
传递给boxplot_stats
来提取箱线图指标boxplot_stats(df)
或boxplot_stats(df.values)
可以工作。dicts
与df
中的列数组顺序相同。fliers
,因为它是用numpy.random
生成的。