matplotlib之箱线图-plotbox

1、箱线图介绍

箱线图(Boxplot)也称箱须图(Box-whisker Plot),是利用数据中的五个统计量:最小值、第一四分位数中位数、第三四分位数与最大值来描述数据的一种方法,它也可以粗略地看出数据是否具有有对称性,分布的分散程度等信息,特别可以用于对几个样本的比较。

2、使用matplotlib画箱线图

import pandas as pd
import matplotlib.pyplot as plt
s = pd.Series([10.0247,10.0470, 10.0647,10.0761,15.0800,15.0830,15.0800,10.0761,10.0647,10.0470,
              10.0247,10.0,9.9753,9.9530,9.9353,9.9239,18.92,9.9239,9.9353,9.9530,9.9753,10.0])
df = pd.DataFrame(s)
df.columns=['value']
f = plt.boxplot(df['value'], vert = False, patch_artist = True)
plt.show()

2.1通过boxplot的返回值对图像进行修改

此处代码参考:Python-matplotlib统计图之箱线图漫谈

f = plt.boxplot(df['value'], sym = 'r*', meanline =False, showmeans = True)
for box in f['boxes']:
    # 箱体边框颜色
    box.set( color='#7570b3', linewidth=2)
    # 箱体内部填充颜色
    #box.set( facecolor = '#1b9e77' )
for whisker in f['whiskers']:
    whisker.set(color='r', linewidth=2)
for cap in f['caps']:
    cap.set(color='g', linewidth=3)
for median in f['medians']:
    median.set(color='DarkBlue', linewidth=3)
for flier in f['fliers']:
    flier.set(marker='o', color='y', alpha=0.5)
plt.show()

2.2获取箱线图中的统计数据

也许有人会问了,使用numpy提供的方法不是很容易计算那些最大,最小,均值的吗?

2.2.1只获取某个指定的数据

f['medians'][0].get_ydata()

2.2.2获取所有数据

res = {}
for key, value in f.items():
    res[key] = [v.get_data() for v in value]

猜你喜欢

转载自blog.csdn.net/xueruixuan/article/details/80762894