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)  # 设置是否显示边界线

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章