案例地址
条形图
条形图主要展现的是每个矩形高度的数值变量的中心趋势的估计。
注:条形图只显示平均值(或其他估计值)。但在很多情况下,每个分类变量级别上显示值的分布可能提供更多信息,此时很多其他方法,如一个盒子或小提琴图可能更合适。
函数原型
seaborn.barplot(x=None, y=None, hue=None,
data=None, order=None, hue_order=None,
estimator=<function mean>, ci=95,
n_boot=1000, units=None, orient=None,
color=None, palette=None, saturation=0.75,
errcolor='.26', errwidth=None, capsize=None,
dodge=True, ax=None, **kwargs)
参数解读
x,y,hue:数据字段变量名(如上表,date,name,age,sex为数据字段变量名)
data: DataFrame,数组或数组列表
order,hue_order:字符串列表
作用:显式指定分类顺序,eg. order=[字段变量名1,字段变量名2,...]
estimator:可回调函数
作用:设置每个分类箱的统计函数
ci:float或者"sd"或None
在估计值附近绘制置信区间的大小,如果是"sd",
则跳过bootstrapping并绘制观察的标准差,
如果为None,则不执行bootstrapping,并且不绘制错误条。
n_boot:int
计算置信区间时使用的引导迭代次数
orient: v | h
图的显示方向(垂直或水平,即横向或纵向),
这通常可以从输入变量的dtype推断得到
color:matplotlib颜色
palette:调试板名称,列表或字典类型
作用:设置hue指定的变量的不同级别颜色。
saturation 饱和度:float
errcolor : matplotlib color
作用:表示置信区间的线条颜色
errwidth:float
作用:表示误差线的厚度
capsize:float
作用:表示误差线上"帽"的宽度(误差线上的横线的宽度)
dodge:bool
作用:使用色调嵌套时,是否应沿分类轴移动元素。
案例教程
案例代码已上传:Github地址import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例1:
指定x分类变量进行分组,指定 y为数据分布,绘制垂直条形图
"""
sns.barplot(x="day", y="total_bill", data=tips)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例2:
指定hue对已分组的数据进行嵌套分组(第二次分组)并绘制条形图
"""
sns.barplot(x="day", y="total_bill", hue="sex", data=tips)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例3:
指定 y 为分类变量进行分组,x 为数据分布 (这样的效果相当于水平条形图)
"""
sns.barplot(x="tip", y="day", data=tips)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例4:
设置order=["变量名1","变量名2",...]来显示指定分类顺序
"""
sns.barplot(x="time", y="tip", data=tips,
order=["Dinner", "Lunch"])
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例5:
使用中位数作为集中趋势的估计:estimator=median
"""
sns.barplot(x="day", y="tip", data=tips, estimator=median)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例6:
使用误差线显示均值的标准差
"""
sns.barplot(x="day", y="tip", data=tips, ci=68)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例7:
设置ci="sd" 显示观测值的标准偏差而不是置信区间
"""
sns.barplot(x="day", y="tip", data=tips, ci="sd")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例8:
设置 capsize,如果capsize>0则添加 caps到错误条上,否则没有错误条
"""
sns.barplot(x="day", y="tip", data=tips, capsize=.2)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例9:
使用不同的调色版:palette="Blues_d"
"""
sns.barplot("size", y="total_bill", data=tips,
palette="Blues_d")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例10:
使用不同的调色版
"""
tips["weekend"] = tips["day"].isin(["Sat", "Sun"])
sns.barplot(x="day", y="total_bill", hue="weekend",
data=tips, dodge=False)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例11:
设置color指定所有bar使用同一颜色
"""
sns.barplot("size", y="total_bill", data=tips,
color="salmon", saturation=.5)
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例12:
linewidth:线宽
facecolor:封闭区域内部的颜色: facecolor=(R, G, B, A),
edgecolor:边颜色
"""
sns.barplot("day", "total_bill", data=tips,
linewidth=2.5, facecolor=(1, 1, 1, 0),
errcolor=".2",edgecolor=".3")
plt.show()
import seaborn as sns
import matplotlib.pyplot as plt
from numpy import median
# 设置样式风格
sns.set(style="darkgrid")
# 构建数据
tips = sns.load_dataset("tips")
"""
案例13:
使用catplot()实现barplot()的效果(通过指定kind=bar)
"""
sns.catplot(x="sex", y="total_bill",
hue="smoker", col="time",
data=tips, kind="bar",
height=4, aspect=.7)
plt.show()
案例地址
上述案例代码已上传:Github地址
Github地址https://github.com/Vambooo/SeabornCN