【Python】箱图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)"],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)"],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)"],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()箱圖中所有線屬性設置
3、seaborn.boxplot分組箱圖
分組繪圖(方法一)
分組繪圖(方法二)
箱子顏色設置
設置箱子顏色
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()箱子間距設置
每個小組再按子組繪圖
按順序繪制箱圖
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
本站qq群955171419,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【Python】箱图boxplot--统计数据、观察数据利器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AngularJS小结
- 下一篇: 无线网络受限制或无连接处理方法