您好,登錄后才能下訂單哦!
這篇文章主要介紹“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()
箱線圖雖然看起來(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
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ì)、線的類型等。
下面代碼展示了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()
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)
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í)用的文章!
免責(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)容。