Python Matplotlib绘制箱线图boxplot()函数怎么使用

这篇文章主要介绍“Python Matplotlib绘制箱线图boxplot()函数怎么使用”,在日常操作中,相信很多人在Python Matplotlib绘制箱线图boxplot()函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python Matplotlib绘制箱线图boxplot()函数怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    箱线图

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

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

    Python Matplotlib绘制箱线图boxplot()函数怎么使用  matplotlib 第1张

    箱线图虽然看起来简单,但包含的数据信息非常丰富。在上图中,橙色的线条表示中位数,中间条形的上下边界分别对应上四分位数(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()

    Python Matplotlib绘制箱线图boxplot()函数怎么使用  matplotlib 第2张

    补充: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)

    Python Matplotlib绘制箱线图boxplot()函数怎么使用  matplotlib 第3张

    常用方法

    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()函数怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注蜗牛博客网站,小编会继续努力为大家带来更多实用的文章!

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    评论

    有免费节点资源,我们会通知你!加入纸飞机订阅群

    ×
    天气预报查看日历分享网页手机扫码留言评论Telegram