溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python?Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用

發(fā)布時(shí)間:2022-07-13 11:04:45 來(lái)源:億速云 閱讀:1409 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Python Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用”,在日常操作中,相信很多人在Python Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Python Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

    箱線圖

    箱線圖一般用來(lái)展現(xiàn)數(shù)據(jù)的分布,如上下四分位值、中位數(shù)等,也可以直觀地展示異常點(diǎn)。Matplotlib提供了boxplot()函數(shù)繪制箱線圖。

    import matplotlib.pyplot as plt
    _ = plt.boxplot(range(10))  # 10個(gè)數(shù),0-9
    plt.show()

    Python?Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用

    箱線圖雖然看起來(lái)簡(jiǎn)單,但包含的數(shù)據(jù)信息非常豐富。在上圖中,橙色的線條表示中位數(shù),中間條形的上下邊界分別對(duì)應(yīng)上四分位數(shù)(75%的數(shù)據(jù)都小于該值)與下四位分?jǐn)?shù)(25%的數(shù)據(jù)小于該值),從條形延伸出兩條線段,兩條線段的終點(diǎn)表示數(shù)據(jù)的最大值最小值。

    import numpy as np
    
    print(np.median(np.arange(10)))  # 中位數(shù)
    print(np.percentile(np.arange(10), 25))  # 下4分位數(shù),也叫第1分位數(shù)
    print(np.percentile(np.arange(10), 75))  # 上4分位數(shù),也叫第3分位數(shù)
    4.5
    2.25
    6.75
    
    Process finished with exit code 0

    boxplot()函數(shù)還提供了豐富的自定義選項(xiàng)

    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 :繪圖數(shù)據(jù)。

    notch :是否以凹口的形式展現(xiàn)箱線圖,默認(rèn)非凹口。

    sym:指定異常點(diǎn)的形狀,默認(rèn)為+號(hào)顯示。

    vert :是否需要將箱線圖垂直放,默認(rèn)垂直放。

    whis :指定上下須與上下四分位的距離,默認(rèn)為1.5倍的四分位差。

    positions :指定箱線圖位置,默認(rèn)為[0,1,2.…]。

    widths :指定箱線圖寬度,默認(rèn)為0.5。

    patch _ artist :是否填充箱體的顏色。

    meanline :是否用線的形式表示均值,默認(rèn)用點(diǎn)表示。

    showmeans :是否顯示均值,默認(rèn)不顯示。

    showcaps :是否顯示箱線圖頂端和末端兩條線,默認(rèn)顯示。

    showbox :是否顯示箱線圖的箱體,默認(rèn)顯示。

    showfliers :是否顯示異常值,默認(rèn)顯示。

    boxprops :設(shè)置箱體的屬性,如邊框色、填充色等。

    labels :為箱線圖添加標(biāo)簽,類似于圖例的作用。

    filerprops :設(shè)置異常值的屬性,如異常點(diǎn)的形狀、大小、填充色等。

    medianprops :設(shè)置中位數(shù)的屬性,如線的類型、粗細(xì)等。

    meanprops :設(shè)置均值的屬性,如點(diǎn)的大小、顏色等。

    capprops :設(shè)置箱線圖頂端和末端線條的屬性,如顏色、粗細(xì)等。

    whiskerprops :設(shè)置須的屬性,如顏色、粗細(xì)、線的類型等。

    箱線圖通常用在多組數(shù)據(jù)比較時(shí)

    下面代碼展示了3組簡(jiǎn)單數(shù)據(jù)的箱線圖,添加凹口、均值點(diǎn)、顏色以及每組的標(biāo)簽。

    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()函數(shù)怎么使用

    補(bǔ)充:plt.boxplot()函數(shù)繪制箱圖、常用方法

    實(shí)戰(zhàn)

    def plt_box_iamge(df):
        """
        snrr的五個(gè)范圍為[5,10)、[10,15)、[15,20)、[20,30)、[30-),按照五個(gè)snrr范圍計(jì)算對(duì)應(yīng)redchi的箱圖
        :param df:包含snrr以及redchi的csv數(shù)據(jù)(dataFrame)。
        :return:
        """
        # 根據(jù)snrr范圍對(duì)redchi進(jìn)行篩選。
        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])
        # 設(shè)置軸坐標(biāo)值刻度的標(biāo)簽
        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)  # 篩選數(shù)據(jù) (lamost數(shù)據(jù)應(yīng)該在正常值范圍內(nèi),不然因?yàn)閿?shù)值差過(guò)大會(huì)導(dǎo)致繪制不出圖像!)
        plt_box_iamge(df_sc)

    Python?Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用

    常用方法

    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])                               # 設(shè)置x軸值的范圍  rotation=30
    # ax.set_xticks()                                    # 自定義x軸的值
    ax.set_xlabel("xlabel")                  # 設(shè)置x軸的標(biāo)簽
    ax.set_xticklabels(['A','B','C','D'],  rotation=30,fontsize=10)   # 設(shè)置x軸坐標(biāo)值的標(biāo)簽 旋轉(zhuǎn)角度 字體大小
    ax.set_title("xcy")                             # 設(shè)置圖像標(biāo)題
    ax.legend(labels= ['A','B','C','D'],loc='best',)  # 增加圖例
    ax.text(x=0.2 , y=3.5 , s="test" ,fontsize=12)   # 增加注
    
    plt.show()

    到此,關(guān)于“Python Matplotlib繪制箱線圖boxplot()函數(shù)怎么使用”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

    向AI問(wèn)一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI