matplotlib可视化之箱线图:plt.boxplot()

  • 函数功能:反映数据的异常情况;主要用于分析数据内部的分布状态或分散状态,包括上下限、各分位数、异常值;
  • 调用方法:plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None)
  • 参数说明:
    • x:指定要绘制箱线图的数据;
    • notch:是否是凹口的形式展现箱线图,默认非凹口;
    • sym:指定异常点的形状,默认为'o'号显示;
    • vert:是否需要将箱线图垂直摆放,默认垂直摆放;
    • whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
    • positions:指定箱线图的位置,默认为[0,1,2…];
    • widths:指定箱线图的宽度,默认为0.5;
    • patch_artist:是否填充箱体的颜色;
    • meanline:是否用线的形式表示均值,默认用点来表示;
    • showmeans:是否显示均值,默认不显示;
    • showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
    • showbox:是否显示箱线图的箱体,默认显示;
    • showfliers:是否显示异常值,默认显示;
    • boxprops:设置箱体的属性,如边框色,填充色等;
      • boxprops = {'color':'g', 'facecolor':'yellow'}
      • 'color' : 'g' 箱子外框的颜色
      • 'facecolor' : 'yellow' 箱子填充的颜色
    • labels:为箱线图添加标签,类似于图例的作用;
    • flierprops:设置异常值的属性,如异常点的形状、大小、填充色等;
    • medianprops:设置中位数的属性,如线的类型、粗细等;
    • meanprops:设置均值的属性,如点的大小、颜色等;
    • capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;
    • whiskerprops:设置须的属性,如颜色、粗细、线的类型等;

绘制箱线图:

#利用numpy库生成100个服从标准正态分布随机数
x = np.random.normal(0,1,100)

plt.boxplot(x,  # 指定绘图数据
           notch = True,sym = 'o' , # 凹凸形状
           patch_artist = True,     # 要求用自定义颜色填充盒形图,默认白色填充
           showmeans = True,        # 以点的形式显示均值
           boxprops = {'color':'black', 'facecolor':'#9999ff'},  # 设置箱体属性,填充色和边框色
           flierprops = {'marker':'o', 'markerfacecolor':'red', 'color':'black'}, # 设置异常值属性,点的形状、填充色和边框色
           meanprops = {'marker':'o', 'markerfacecolor':'c',},   # 设置均值点的属性,点的形状、填充色
           medianprops = {'linestyle':'--', 'color':'orange'})   # 设置中位数线的属性,线的类型和颜色
            

# 去除箱线图的上边框与右边框的刻度标签
plt.tick_params(top = 'off', right = 'off')

plt.show()

绘制多组箱线图:同时观测多组数据(或特征)的分布情况和异常值情况

#利用 numpy库生成三组正态分布随机数
x = [np.random.normal(0,std,100) for std in range(1,4)]

# 绘图
plt.boxplot(x, 
            patch_artist = True,sym = 'o',
            labels = ['一组','二组','三组'], # 添加具体的标签名称
            showmeans=True, 
            boxprops = {'color':'black','facecolor':'#9999ff'}, 
            flierprops = {'marker':'o','markerfacecolor':'red','color':'black'},
            meanprops = {'marker':'D','markerfacecolor':'indianred','color' : 'y',},
            medianprops = {'linestyle':'--','color':'orange'})

# 显示图形

plt.show()

猜你喜欢

转载自blog.csdn.net/weixin_46707493/article/details/119837102
今日推荐