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)  # 設置是否顯示邊界線

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