【Python】箱图boxplot--统计数据、观察数据利器
本文將了解到什么?
1、數(shù)據(jù)集準備及箱圖簡介 2、seaborn.boxplot箱圖外觀設(shè)置 默認參數(shù)繪制箱圖箱圖異常值屬性設(shè)置 異常值關(guān)閉顯示異常值marker大小設(shè)置異常值marker形狀、填充色、輪廓設(shè)置 箱圖上下橫線屬性設(shè)置 上下橫線關(guān)閉上下橫線顏色、線型、線寬等設(shè)置 箱圖上下須線屬性設(shè)置 箱圖箱子設(shè)置箱子設(shè)置缺口箱子不填充顏色 箱子外框、內(nèi)部填充色 箱圖中位數(shù)線屬性設(shè)置 箱圖均值屬性設(shè)置 均值使用點顯示、設(shè)置點形狀、填充色均值使用線顯示 、線型、顏色設(shè)置 箱圖中所有線屬性設(shè)置 3、seaborn.boxplot分組箱圖 分組繪圖(方法一) 分組繪圖(方法二) 箱子顏色設(shè)置 設(shè)置箱子顏色設(shè)置箱子顏色飽和度 箱子間距設(shè)置 每個小組再按子組繪圖 按順序繪制箱圖正文開始啦
一個箱圖的主要組成原件線圖用來展現(xiàn)數(shù)據(jù)的分布,能直觀的展示數(shù)據(jù)的關(guān)鍵指標(biāo)(如下四分位數(shù)、上四分位數(shù)、中位數(shù)、最大值、最小值、離散點/異常值點);箱線圖可直觀展示不同組數(shù)據(jù)的差異;下面詳細介紹python中matplotlib及seaborn庫繪制箱圖。
1、數(shù)據(jù)集準備及箱圖簡介
還是使用鳶尾花數(shù)據(jù)集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']?)查看數(shù)據(jù)集樣子??pd_iris["sepal width(cm)"]簡單統(tǒng)計,后文主要使用該列數(shù)據(jù)集繪圖。
pd_iris["sepal?width(cm)"].describe()#以上各個值其實都可以使用describe函數(shù)查看count ? ?150.000000
mean ? ? ? 3.054000
std ? ? ? ?0.433594
min ? ? ? ?2.000000
25% ? ? ? ?2.800000(下四分位數(shù),25% 的數(shù)據(jù)小于等于此值。)
50% ? ? ? ?3.000000(中位數(shù),50% 的數(shù)據(jù)小于等于此值。)
75% ? ? ? ?3.300000(上四分位數(shù),75% 的數(shù)據(jù)小于等于此值。)
max ? ? ? ?4.400000
Name: sepal width(cm), dtype: float64
上面注釋部分很好的解釋了下面箱圖中四分位數(shù)的含義??
2、seaborn.boxplot箱圖外觀設(shè)置
默認參數(shù)繪制箱圖
箱圖異常值屬性設(shè)置
異常值關(guān)閉顯示
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showfliers=False,#異常值關(guān)閉顯示) plt.show()異常值marker大小設(shè)置
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',fliersize=15,#設(shè)置離散值marker大小,默認為5) plt.show()異常值marker形狀、填充色、輪廓設(shè)置
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',flierprops?=?{'marker':'o',#異常值形狀'markerfacecolor':'red',#形狀填充色'color':'black',#形狀外廓顏色},) plt.show()箱圖上下橫線屬性設(shè)置
上下橫線關(guān)閉
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showcaps=False,#上下橫線關(guān)閉) plt.show()上下橫線顏色、線型、線寬等設(shè)置
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],capprops={'linestyle':'--','color':'red'},#設(shè)置上下橫線屬性) plt.show()箱圖上下須線屬性設(shè)置
箱圖箱子設(shè)置
箱子設(shè)置缺口
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',notch=True,#箱子設(shè)置缺口) plt.show()箱子不填充顏色
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],orient='v',color='white',#箱子不填充) plt.show()箱子外框、內(nèi)部填充色
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],boxprops?=?{'color':'red',#箱子外框'facecolor':'pink'#箱子填充色},#設(shè)置箱子屬性) plt.show()箱圖中位數(shù)線屬性設(shè)置
**箱圖均值屬性設(shè)置?**
均值使用點顯示、設(shè)置點形狀、填充色
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showmeans=True,#箱圖顯示均值,meanprops?=?{'marker':'D','markerfacecolor':'red'},#設(shè)置均值屬性) plt.show()均值使用線顯示?、線型、顏色設(shè)置
plt.figure(dpi=100) sns.boxplot(y=pd_iris["sepal?width(cm)"],showmeans=True,#箱圖顯示均值,meanline=True,#顯示均值線meanprops?=?{'linestyle':'--','color':'red'},#設(shè)置均值線屬性) plt.show()箱圖中所有線屬性設(shè)置
3、seaborn.boxplot分組箱圖
分組繪圖(方法一)
分組繪圖(方法二)
箱子顏色設(shè)置
設(shè)置箱子顏色
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,#設(shè)置每個箱子顏色) plt.show()設(shè)置箱子顏色飽和度
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,#設(shè)置顏色飽和度) plt.show()箱子間距設(shè)置
每個小組再按子組繪圖
按順序繪制箱圖
4、參考資料
以上涉及到單顏色設(shè)置,詳細見:Python可視化|matplotlib05-內(nèi)置單顏色(一);Python可視化|matplotlib06-外部單顏色(二);
涉及到colormap設(shè)置,詳細見:Python可視化|matplotlib07-自帶顏色條Colormap(三);Python可視化|08-Palettable庫中顏色條Colormap(四)
涉及到marker及l(fā)inestyle設(shè)置,詳細見: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
本站qq群955171419,加入微信群請掃碼:
總結(jié)
以上是生活随笔為你收集整理的【Python】箱图boxplot--统计数据、观察数据利器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AngularJS小结
- 下一篇: 【Python】数据科学家提高效率的 4