seaborn是專門用于統(tǒng)計數據可視化的包结蟋,可媲美R語言中的ggplot2包。本文介紹用seaborn繪制盒形圖玛痊。
環(huán)境
- python3.9
- win10 64bit
- seaborn==0.11.1
- matplotlib==3.3.4
- pandas==1.2.1
數據
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 設置
pd.options.display.notebook_repr_html=False # 表格顯示
plt.rcParams['figure.dpi'] = 75 # 圖形分辨率
sns.set_theme(style='darkgrid') # 圖形主題
# 加載數據
tips=pd.read_csv(r'https://gitee.com/nicedouble/seaborn-data/raw/master/tips.csv')
tips.head()
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
繪制
在seaborn中,繪制盒形圖的函數有boxplot
和catplot
嫂粟。
seaborn
繪制盒形圖最簡單的方式是使用boxplot
方法读虏,指定data
參數和x
或y
參數责静。
# 盒形圖,繪制在x軸上
sns.boxplot(data=tips,x='total_bill')
plt.show()
設置y
參數時盖桥,盒形圖會繪制在y軸上灾螃。
# 盒形圖,繪制在y軸上
sns.boxplot(data=tips,y='total_bill')
plt.show()
如果只設置data
參數揩徊,seaborn
會把數據當成寬型數據腰鬼,自動繪制所有的數值型變量的盒形圖嵌赠。
# 自動繪制所有數值型變量的盒形圖
sns.boxplot(data=tips)
plt.show()
同時設置x
和y
參數,繪制多個盒形圖熄赡。x
和y
參數需要一個為類別型變量姜挺,一個為數值型變量。
# 多個盒形圖
sns.boxplot(data=tips,x="day", y="total_bill")
plt.show()
調整
設置linewidth
參數彼硫,可以調整盒形圖線寬炊豪。
# 粗線盒形圖
sns.boxplot(data=tips,x="total_bill",linewidth=5)
plt.show()
設置參數orient='h'
,可以使盒形圖水平放置拧篮。
# 水平放置盒形圖
sns.boxplot(data=tips,orient='h')
plt.show()
分組盒形圖
設置hue
參數词渤,可以繪制分組盒形圖。
# 分組盒形圖
sns.boxplot(data=tips,x="day", y="total_bill", hue="smoker")
plt.show()
分面盒形圖
使用catplot
繪制分面盒形圖串绩,設置參數kind='box'
缺虐,設置col
或row
控制分面行為。
# 分面盒形圖
sns.catplot(data=tips,x='day',y='total_bill',hue='smoker',col='sex',kind='box')
plt.show()
更多參考seaborn盒形圖