seaborn是专门用于统计数据可视化的包,可媲美R语言中的ggplot2包。本文介绍用seaborn绘制盒形图。
环境
- 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盒形图