Python Matplotlib绘制箱线图boxplot()函数详解

 更新时间:2022年07月13日 08:45:37   作者:上课不要睡觉了  
箱线图一般用来展现数据的分布(如上下四分位值、中位数等),同时也可以用箱线图来反映数据的异常情况,下面这篇文章主要给大家介绍了关于Python Matplotlib绘制箱线图boxplot()函数的相关资料,需要的朋友可以参考下

箱线图

箱线图一般用来展现数据的分布,如上下四分位值、中位数等,也可以直观地展示异常点。Matplotlib提供了boxplot()函数绘制箱线图。

import matplotlib.pyplot as plt
_ = plt.boxplot(range(10))  # 10个数,0-9
plt.show()

请添加图片描述

箱线图虽然看起来简单,但包含的数据信息非常丰富。在上图中,橙色的线条表示中位数,中间条形的上下边界分别对应上四分位数(75%的数据都小于该值)与下四位分数(25%的数据小于该值),从条形延伸出两条线段,两条线段的终点表示数据的最大值最小值

import numpy as np

print(np.median(np.arange(10)))  # 中位数
print(np.percentile(np.arange(10), 25))  # 下4分位数,也叫第1分位数
print(np.percentile(np.arange(10), 75))  # 上4分位数,也叫第3分位数
4.5
2.25
6.75

Process finished with exit code 0

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:指定异常点的形状,默认为+号显示。

vert :是否需要将箱线图垂直放,默认垂直放。

whis :指定上下须与上下四分位的距离,默认为1.5倍的四分位差。

positions :指定箱线图位置,默认为[0,1,2.…]。

widths :指定箱线图宽度,默认为0.5。

patch _ artist :是否填充箱体的颜色。

meanline :是否用线的形式表示均值,默认用点表示。

showmeans :是否显示均值,默认不显示。

showcaps :是否显示箱线图顶端和末端两条线,默认显示。

showbox :是否显示箱线图的箱体,默认显示。

showfliers :是否显示异常值,默认显示。

boxprops :设置箱体的属性,如边框色、填充色等。

labels :为箱线图添加标签,类似于图例的作用。

filerprops :设置异常值的属性,如异常点的形状、大小、填充色等。

medianprops :设置中位数的属性,如线的类型、粗细等。

meanprops :设置均值的属性,如点的大小、颜色等。

capprops :设置箱线图顶端和末端线条的属性,如颜色、粗细等。

whiskerprops :设置须的属性,如颜色、粗细、线的类型等。

箱线图通常用在多组数据比较

下面代码展示了3组简单数据的箱线图,添加凹口、均值点、颜色以及每组的标签。

import matplotlib.pyplot as plt

a = plt.boxplot([range(10), range(20), range(30)],
                patch_artist=True,
                boxprops={'color': 'blue'},
                notch=True, showmeans=True,
                labels=['A', 'B', 'C'])
plt.show()

请添加图片描述

补充:plt.boxplot()函数绘制箱图、常用方法

实战

def plt_box_iamge(df):
    """
    snrr的五个范围为[5,10)、[10,15)、[15,20)、[20,30)、[30-),按照五个snrr范围计算对应redchi的箱图
    :param df:包含snrr以及redchi的csv数据(dataFrame)。
    :return:
    """
    # 根据snrr范围对redchi进行筛选。
    df1 = df.loc[df['lam_snrr'] >= 5]
    redchi_1 = df1.loc[df1['lam_snrr'] < 10].redchi

    df2 = df.loc[df['lam_snrr'] >= 10]
    redchi_2 = df2.loc[df2['lam_snrr'] < 15].redchi

    df3 = df.loc[df['lam_snrr'] >= 15]
    redchi_3 = df3.loc[df3['lam_snrr'] < 20].redchi

    df4 = df.loc[df['lam_snrr'] >= 20]
    redchi_4 = df4.loc[df4['lam_snrr'] < 30].redchi

    redchi_5 = df.loc[df['lam_snrr'] >= 30].redchi
    # 绘图
    ax = plt.subplot()
    ax.boxplot([redchi_1, redchi_2, redchi_3, redchi_4, redchi_5])
    # 设置轴坐标值刻度的标签
    ax.set_xticklabels(['5<=snrr<10', '10<=snrr<15', '15<=snrr<20', '20<=snrr<30', '30<=snrr'], fontsize=8)
    #    保存图片 
    plt.savefig('./images/box.jpg')
    plt.show()

if __name__ == '__main__':
    df = pd.read_csv('./inputfile/lamost6w_new.csv')
    df_sc = screening(df)  # 筛选数据 (lamost数据应该在正常值范围内,不然因为数值差过大会导致绘制不出图像!)
    plt_box_iamge(df_sc)

常用方法

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(100)
data = np.random.normal(size=(1000,4),loc=0,scale=1)

ax = plt.subplot()
ax.boxplot(data)                                 # 绘图
ax.set_xlim([0,5])                               # 设置x轴值的范围  rotation=30
# ax.set_xticks()                                    # 自定义x轴的值
ax.set_xlabel("xlabel")                  # 设置x轴的标签
ax.set_xticklabels(['A','B','C','D'],  rotation=30,fontsize=10)   # 设置x轴坐标值的标签 旋转角度 字体大小
ax.set_title("xcy")                             # 设置图像标题
ax.legend(labels= ['A','B','C','D'],loc='best',)  # 增加图例
ax.text(x=0.2 , y=3.5 , s="test" ,fontsize=12)   # 增加注

plt.show()

总结 

到此这篇关于Python Matplotlib绘制箱线图boxplot()函数详解的文章就介绍到这了,更多相关Matplotlib箱线图boxplot()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python可视化神器pyecharts绘制仪表盘

    Python可视化神器pyecharts绘制仪表盘

    这篇文章主要介绍了Python可视化神器pyecharts绘制仪表盘,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Pytest参数化parametrize使用代码实例

    Pytest参数化parametrize使用代码实例

    这篇文章主要介绍了Pytest参数化parametrize使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Python的f-string使用技巧

    Python的f-string使用技巧

    Python很早就引入了一种称为 f-string 的字符串格式化方法,它代表格式化字符串字面值,本文主要介绍了Python的f-string使用技巧,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • python中for循环的多种使用实例

    python中for循环的多种使用实例

    for语句是Python中执行迭代的两个语句之一,另一个语句是while,下面这篇文章主要给大家介绍了关于python中for循环的多种使用方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • python中super().__init__()的用法

    python中super().__init__()的用法

    python里的super().__init__()有什么作用?很多同学没有弄清楚。super()用来调用父类(基类)的方法,__init__()是类的构造方法,感兴趣的小伙伴可以参考阅读本文
    2023-03-03
  • matplotlib在python上绘制3D散点图实例详解

    matplotlib在python上绘制3D散点图实例详解

    这篇文章主要介绍了matplotlib在python上绘制3D散点图实例详解,首先介绍了官网的实例,然后分享了本文简单代码示例,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • 浅谈python的dataframe与series的创建方法

    浅谈python的dataframe与series的创建方法

    今天小编就为大家分享一篇浅谈python的dataframe与series的创建方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Python调用系统底层API播放wav文件的方法

    Python调用系统底层API播放wav文件的方法

    这篇文章主要介绍了Python调用系统底层API播放wav文件的方法,涉及Python使用pywin32调用系统底层API读取与播放wav文件的相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • 深入理解Python3 内置函数大全

    深入理解Python3 内置函数大全

    本篇文章主要介绍了Python3 内置函数,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • python 边缘扩充方式的实现示例

    python 边缘扩充方式的实现示例

    本文主要介绍了python 边缘扩充方式的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03

最新评论