seaborn.barplot柱状图详说

1、seaborn.barplot参数:

seaborn.barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=mean , ci=95,
 n_boot=1000, units=None, seed=None, orient=None, color=None, palette=None, saturation=0.75, errcolor='.26',
 errwidth=None, capsize=None, dodge=True, ax=None, **kwargs)

将点估计和置信区间显示为矩形图。

参数:

x,y:str ,dataframe中的列名
hue:dataframe的列名,按照列名的值分类形成分类的条形图;
data:dataframe或数组
order,hue_order(list of strings):用于控制条形图的顺序;
estimator:默认mean 可以修改为 median 中位数
ci:置信区间的大小,如果为sd,跳过引导程序并绘制观测值的标准偏差;
orient:绘图方向,v,h
palette:调色板【"Set3",""】
saturation:饱和度
capsize:设置误差棒帽条(上下两根横线)的宽度;
n_boot:计算代表置信区间的误差线时,默认采用bootstrap抽样方法,控制bootstrap抽样次数;
errcolor:设置误差线颜色,默认黑色;
errwidth:设置误差线的显示线宽;
dodge:当使用分类参数hue时,dodge=True,不同bar显示,False 同bar不同颜色;
ax:选择图形将显示在哪个axes对象上,默认当前Axes对象;

(1)绘制一组按类别变量分组的垂直条形图

import seaborn as sns
sns.set(style="whitegrid")
tips = sns.load_dataset("tips")
ax = sns.barplot(x="day",y="total_bill",data=tips)

sns.barplot(x="day",y="total_bill",hue ="sex",data=tips)

(2) 分类子图

sns.set(style="white",context="talk")
fig,(ax1,ax2) = plt.subplots(2,1,figsize=(10,6),sharex=True)
x = np.array(list("ABCDEFGHIJ"))
y1 = np.arange(1, 11)
sns.barplot(x=x, y=y1, palette="deep", ax=ax1)  # palette :rocket husl deep  vlag

ax1.axhline(0, color="k", clip_on=False)
ax1.set_ylabel("Sequential")

y2 = y1 - 5.5
sns.barplot(x=x, y=y2, palette="vlag", ax=ax2)
ax2.axhline(0, color="k", clip_on=False)
ax2.set_ylabel("Diverging")

sns.despine(bottom=True)
plt.setp(fig.axes, yticks=[])
plt.tight_layout(h_pad=2)

(3)分类柱状图,显示具体y轴数值,y轴刻度

tips = sns.load_dataset("tips")
group_values = tips.groupby("day").sum().reset_index()
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
sns.set(style="white",context="talk")
fig,ax1 = plt.subplots(1,1,figsize=(8,5),sharex=True)

g = sns.barplot(x="day", y="tip",data=group_values, palette="husl", ax=ax1,ci =0)  # palette :rocket husl deep  vlag
# 显示具体值
for index,row in group_values.iterrows():
    g.text(row.name,row.tip+2,round(row.tip,1),color="black",ha="center")

sns.despine(bottom=False,left=False)  # 设置是否显示边界线
ax1.set_yticks([0,50,100,150,200,250,300])

2、误差线:

误差线 源于统计学,表示数据误差或不确定性范围,以更准确方式呈现数据。
当label上有一组采样数据时,一般用平均值作为该label标注的值,用误差线表示该均值可能的误差范围。
误差线可以用:标准差 (standard Deviation,SD)、标准误差(standard Error,SE)、置信区间表示;
标准差: s 
    样本标准差估计总体标准差,其中u是样本均值,误差线范围(u-s,u+s)
标准误差:
    当多次进行重复采样时,得到很多组数据,
置信区间理解:
    置信区间 置信度为P指在重复采集n次时,得到的样本均值有np次可能落在置信区间内,不能进行如下解读:
总体均值有P的可能性在置信区间内, 可能性是贝叶斯学派的观点。

3、seaborn.countplot

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, orient=None, 
    color=None, palette=None, saturation=0.75, dodge=True, ax=None, **kwargs)
用条形图显示每个分类箱中的观测值。计数条形图
参数:
x,y,hue:dataframe中列名,x和y不能同时,hue分类
data:绘图数据集
order,hue_order:控制条形图顺序
orient:绘图方向,
color:颜色
palette:调色板【"Set3","Set1","husl","deep","rocket",""】
saturation:饱和度
dodge:当使用分类参数hue时,dodge=True,不同bar显示,False 同bar不同颜色;
ax:使用轴对象绘图,默认使用当前轴;
sns.set(style="white")
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
sns.set(style="white",context="talk")
fig,ax1 = plt.subplots(1,1,figsize=(8,5),sharex=True)
group_values = tips.groupby("day").count().reset_index()
g = sns.countplot(x="day",data=data,palette="husl",ax=ax1)
for index,row in group_values.iterrows():
    g.text(row.name,row.tip+2,row.tip,color="black",ha="center")
g.set_yticks([0,20,40,60,80,100])
# sns.despine(bottom=False,left=False)  # 设置是否显示边界线

4、seaborn.catplot

seaborn.catplot(x=None, y=None, hue=None, data=None, row=None, col=None, col_wrap=None, 
    estimator=<function mean at 0x105c7d9e0>, ci=95, n_boot=1000, units=None, seed=None, 
    order=None, hue_order=None, row_order=None, col_order=None, kind='strip', height=5, aspect=1, 
    orient=None, color=None, palette=None, legend=True, legend_out=True, sharex=True, sharey=True, 
    margin_titles=False, facet_kws=None, **kwargs)
参数:
x,y,hue:
col,row:分类变量决定网格的分面
col_wrap:每列子图数量
data:绘图数据集
kind:绘制类型,【"point","bar","strip","swarm","box","violin","boxen"】,默认"strip"
height:每个刻面的高度,英寸为单位
aspect:每个面的纵横比,aspect*height每个面的宽度,英寸
orient:绘图方向,v,h
legend:如果为True,且hue变量,绘制图例
lenged_out:True,图形尺寸扩展,图例绘制在中间右侧的图形之外
sharex,sharey:True,共享x或y轴

 

import seaborn as sns
plt.rcParams["font.sans-serif"]=["Microsoft YaHei"]
sns.set(style="white",context="talk")
exercise = sns.load_dataset("exercise")
sns.catplot(x="time", y="pulse", hue="kind", data=exercise,col="diet")
exercise.head()

sns.set(style="whitegrid",font="Microsoft YaHei",font_scale=1.2)
g = sns.catplot(x="time",y="pulse",hue="kind",data=exercise,col="diet",kind="point",catsize=1)
sns.despine(left=True)

sns.set(style="white",font="Microsoft YaHei",font_scale=1.2)
g = sns.catplot(x="time",y="pulse",data=exercise,col="diet",kind="bar",ci=0)
(g.set_axis_labels("","Pulse")
.set_xticklabels(["1min","2min","3min"])
.set_titles("{col_name} {col_var}")   # 每个子图名称   col + "col name"
.set_xlabels("time")
.set(ylim=(0,120))
.despine(left=True))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值