日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】箱图boxplot--统计数据、观察数据利器

發布時間:2025/3/12 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】箱图boxplot--统计数据、观察数据利器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文系統詳解利用python中seaborn.boxplot繪制箱圖boxplot。 seaborn.boxplot是matplotlib.pyplot.boxplot的封裝版, 更個性化的設置請研究matplotlib.pyplot.boxplot

本文將了解到什么?

1、數據集準備及箱圖簡介 2、seaborn.boxplot箱圖外觀設置 默認參數繪制箱圖箱圖異常值屬性設置 異常值關閉顯示異常值marker大小設置異常值marker形狀、填充色、輪廓設置 箱圖上下橫線屬性設置 上下橫線關閉上下橫線顏色、線型、線寬等設置 箱圖上下須線屬性設置 箱圖箱子設置箱子設置缺口箱子不填充顏色 箱子外框、內部填充色 箱圖中位數線屬性設置 箱圖均值屬性設置 均值使用點顯示、設置點形狀、填充色均值使用線顯示 、線型、顏色設置 箱圖中所有線屬性設置 3、seaborn.boxplot分組箱圖 分組繪圖(方法一) 分組繪圖(方法二) 箱子顏色設置 設置箱子顏色設置箱子顏色飽和度 箱子間距設置 每個小組再按子組繪圖 按順序繪制箱圖

正文開始啦

一個箱圖的主要組成原件

線圖用來展現數據的分布,能直觀的展示數據的關鍵指標(如下四分位數、上四分位數、中位數、最大值、最小值、離散點/異常值點);箱線圖可直觀展示不同組數據的差異;下面詳細介紹python中matplotlib及seaborn庫繪制箱圖。

1、數據集準備及箱圖簡介

還是使用鳶尾花數據集iris,iris詳細介紹請戳:Python可視化|matplotlib10-繪制散點圖scatter

import?matplotlib.pyplot?as?plt import?numpy?as?np import?pandas?as?pd from?pandas?import?Series,DataFrame import?seaborn?as?sns import?palettable from?sklearn?import?datasets?plt.rcParams['font.sans-serif']=['SimHei']??#?用于顯示中文 plt.rcParams['axes.unicode_minus']?=?False??#?用于顯示中文iris=datasets.load_iris() x,?y?=?iris.data,?iris.target pd_iris?=?pd.DataFrame(np.hstack((x,?y.reshape(150,?1))),columns=['sepal?length(cm)','sepal?width(cm)','petal?length(cm)','petal?width(cm)','class']?)

查看數據集樣子??pd_iris["sepal width(cm)"]簡單統計,后文主要使用該列數據集繪圖

pd_iris["sepal?width(cm)"].describe()#以上各個值其實都可以使用describe函數查看

count ? ?150.000000
mean ? ? ? 3.054000
std ? ? ? ?0.433594
min ? ? ? ?2.000000
25% ? ? ? ?2.800000(下四分位數,25% 的數據小于等于此值。)
50% ? ? ? ?3.000000(中位數,50% 的數據小于等于此值。)
75% ? ? ? ?3.300000(上四分位數,75% 的數據小于等于此值。)
max ? ? ? ?4.400000
Name: sepal width(cm), dtype: float64

上面注釋部分很好的解釋了下面箱圖中四分位數的含義??


2、seaborn.boxplot箱圖外觀設置

  • 默認參數繪制箱圖

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],#傳入一組數據orient='v'#箱子垂直顯示,默認為'h'水平顯示) plt.show()
  • 箱圖異常值屬性設置

異常值關閉顯示

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showfliers=False,#異常值關閉顯示) plt.show()

異常值marker大小設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',fliersize=15,#設置離散值marker大小,默認為5) plt.show()

異常值marker形狀、填充色、輪廓設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',flierprops?=?{'marker':'o',#異常值形狀'markerfacecolor':'red',#形狀填充色'color':'black',#形狀外廓顏色},) plt.show()
  • 箱圖上下橫線屬性設置

上下橫線關閉

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showcaps=False,#上下橫線關閉) plt.show()

上下橫線顏色、線型、線寬等設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],capprops={'linestyle':'--','color':'red'},#設置上下橫線屬性) plt.show()
  • 箱圖上下須線屬性設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],whiskerprops={'linestyle':'--','color':'red'},#設置上下須屬性) plt.show()
  • 箱圖箱子設置

箱子設置缺口

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',notch=True,#箱子設置缺口) plt.show()

箱子不填充顏色

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',color='white',#箱子不填充) plt.show()

箱子外框、內部填充色

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],boxprops?=?{'color':'red',#箱子外框'facecolor':'pink'#箱子填充色},#設置箱子屬性) plt.show()
  • 箱圖中位數線屬性設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],medianprops?=?{'linestyle':'--','color':'red'},#設置中位數線線型及顏色) plt.show()
  • **箱圖均值屬性設置?**

均值使用點顯示、設置點形狀、填充色

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showmeans=True,#箱圖顯示均值,meanprops?=?{'marker':'D','markerfacecolor':'red'},#設置均值屬性) plt.show()

均值使用線顯示?、線型、顏色設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showmeans=True,#箱圖顯示均值,meanline=True,#顯示均值線meanprops?=?{'linestyle':'--','color':'red'},#設置均值線屬性) plt.show()
  • 箱圖中所有線屬性設置

plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',linewidth=8#設置箱子等線的寬度) plt.show()

3、seaborn.boxplot分組箱圖

  • 分組繪圖(方法一)

plt.figure(dpi=100) class_name=[iris.target_names[0]?if?i==0.0?else?iris.target_names[1]?if?i==1.0?else?iris.target_names[2]?for?i?in?pd_iris['class']] sns.boxplot(x=class_name,#按照pd_iris["sepal?width(cm)"]分組,即按照每種鳶尾花('setosa',?'versicolor',?'virginica')分組繪圖y=pd_iris["sepal?width(cm)"],#繪圖數據orient='v') plt.show()
  • 分組繪圖(方法二)

plt.figure(dpi=100) sns.boxplot(x='class',y='sepal?width(cm)',data=pd_iris,#data的作用就是x,y每次不需要輸入pd_irisorient='v') plt.show()
  • 箱子顏色設置

設置箱子顏色

import?palettable plt.figure(dpi=100) sns.boxplot(x='class',y='sepal?width(cm)',data=pd_iris,orient='v',palette=palettable.tableau.TrafficLight_9.mpl_colors,#設置每個箱子顏色) plt.show()

設置箱子顏色飽和度

import?palettable plt.figure(dpi=100) sns.boxplot(x='class',y='sepal?width(cm)',data=pd_iris,orient='v',palette=palettable.tableau.TrafficLight_9.mpl_colors,saturation=0.3,#設置顏色飽和度) plt.show()
  • 箱子間距設置

import?palettable plt.figure(dpi=100) sns.boxplot(x='class',y='sepal?width(cm)',data=pd_iris,orient='v',palette=palettable.tableau.TrafficLight_9.mpl_colors,saturation=0.3,#設置顏色飽和度width=1.0,#設置箱子之間距離,為1時,每個箱子之間距離為0) plt.show()
  • 每個小組再按子組繪圖

plt.figure(dpi=100) class_name=[iris.target_names[0]?if?i==0.0?else?iris.target_names[1]?if?i==1.0?else?iris.target_names[2]?for?i?in?pd_iris['class']] sns.boxplot(x=class_name,y=pd_iris['sepal?width(cm)'],hue=pd_iris['petal?width(cm)'],#每類按照子類分組:上圖三類再按照'sepal width(cm)'分組繪圖orient='v') plt.show()
  • 按順序繪制箱圖

plt.figure(dpi=100) class_name=[iris.target_names[0]?if?i==0.0?else?iris.target_names[1]?if?i==1.0?else?iris.target_names[2]?for?i?in?pd_iris['class']] sns.boxplot(x=class_name,y=pd_iris["sepal?width(cm)"],hue=pd_iris['petal?width(cm)'],order=["virginica",?"versicolor",?"setosa"],#設置箱子的顯示順序hue_order=sorted(list(pd_iris['petal?width(cm)'].unique())),#設置每個子類中箱子的顯示順序,此處設置從小到大排序orient='v') plt.show()

4、參考資料

  • 以上涉及到單顏色設置,詳細見:Python可視化|matplotlib05-內置單顏色(一);Python可視化|matplotlib06-外部單顏色(二);

  • 涉及到colormap設置,詳細見:Python可視化|matplotlib07-自帶顏色條Colormap(三);Python可視化|08-Palettable庫中顏色條Colormap(四)

  • 涉及到marker及linestyle設置,詳細見:Python可視化|matplotlib03-一文掌握marker和linestyle使用

  • https://matplotlib.org/api/_as_gen/matplotlib.pyplot.boxplot.html?highlight=boxplot#matplotlib.pyplot.boxplot

  • http://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載黃海廣老師《機器學習課程》視頻課黃海廣老師《機器學習課程》711頁完整版課件

本站qq群955171419,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【Python】箱图boxplot--统计数据、观察数据利器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。