python 竖线 绘图_Python可视化 | Seaborn5分钟入门(二)——barplot countplot
Seaborn是基于matplotlib的Python可視化庫。 它提供了一個(gè)高級(jí)界面來繪制有吸引力的統(tǒng)計(jì)圖形。Seaborn其實(shí)是在matplotlib的基礎(chǔ)上進(jìn)行了更高級(jí)的API封裝,從而使得作圖更加容易,不需要經(jīng)過大量的調(diào)整就能使你的圖變得精致。
注:所有代碼均在IPython notebook中實(shí)現(xiàn)
barplot(條形圖)
條形圖表示數(shù)值變量與每個(gè)矩形高度的中心趨勢的估計(jì)值,并使用誤差線提供關(guān)于該估計(jì)值附近的不確定性的一些指示。具體用法如下:
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)
接下來還是通過具體例子學(xué)習(xí)里面的一些參數(shù)的用法:
%matplotlib inlineimport pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt#用于解決中文顯示不了的問題plt.rc("font",family="SimHei",size="12") sns.set_style("whitegrid")本篇文章所采用的數(shù)據(jù)集內(nèi)容如下
data.head(5) #data是一個(gè)dataframex,y(str):dataframe中的列名
data:dataframe或者數(shù)組
sns.barplot(x="color", y="age", data=data)關(guān)于圖像的解釋:Seaborn會(huì)對(duì)”color“列中的數(shù)值進(jìn)行歸類后按照estimator參數(shù)的方法(默認(rèn)為平均值)計(jì)算相應(yīng)的值,計(jì)算出來的值就作為條形圖所顯示的值(條形圖上的誤差棒則表示各類的數(shù)值相對(duì)于條形圖所顯示的值的誤差)
hue(str):dataframe的列名,按照列名中的值分類形成分類的條形圖
sns.barplot(x="color" y="age",data=data,hue="gender")order, hue_order (lists of strings):用于控制條形圖的順序
fig,axes=plt.subplots(1,2)sns.barplot(x="gender", y="age", data=data, ax=axes[0])sns.barplot(x="gender", y="age", data=data, ax=axes[1], order=["女","男"])estimator:控制條形圖取每列數(shù)據(jù)的什么值
fig,axes=plt.subplots(1,2)#左圖,默認(rèn)為平均值sns.barplot(x="gender", y="age", data=data, ax=axes[0]) #右圖,中位數(shù)sns.barplot(x="gender", y="age", estimator=np.median, data=data, ax=axes[1])ci(float): 置信區(qū)間(在0-100之間),若填寫"sd",則誤差棒用標(biāo)準(zhǔn)誤差。(默認(rèn)為95)
fig,axes=plt.subplots(1,2)sns.barplot(x="color", y="age", data=data, ci=0, ax=axes[0]) #左圖sns.barplot(x="color", y="age", data=data, ci="sd", ax=axes[1]) #右圖capsize(float):設(shè)置誤差棒帽條(上下兩根橫線)的寬度
fig,axes=plt.subplots(1,2)sns.barplot(x="color", y="age", data=data, ax=axes[0], capsize=.2) #左圖sns.barplot(x="color", y="age", data=data, ax=axes[1], capsize=.5) #右圖palette:調(diào)色板,控制不同的顏色style
fig,axes=plt.subplots(2,1)sns.barplot(x="color", y="age", data=data, ax=axes[0]) #上圖sns.barplot(x="color", y="age", data=data, palette="Set3", ax=axes[1]) #下圖X,Y軸互換
fig,axes=plt.subplots(1,2)sns.barplot(x="age",y="color",data=data,ax=axes[0]) #左圖sns.barplot(x="color",y="age",data=data,ax=axes[1]) #右圖countplot入門
一個(gè)計(jì)數(shù)圖可以被認(rèn)為是一個(gè)分類直方圖,而不是定量的變量。基本的api和選項(xiàng)與barplot()相同,因此您可以比較嵌套變量中的計(jì)數(shù)。(工作原理就是對(duì)輸入的數(shù)據(jù)分類,條形圖顯示各個(gè)分類的數(shù)量)具體用法如下:
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)
注:countplot參數(shù)和barplot基本差不多,可以對(duì)比著記憶,有一點(diǎn)不同的是countplot中不能同時(shí)輸入x和y,且countplot不存在置信區(qū)間。
根據(jù)例子體驗(yàn)一下:
fig,axes=plt.subplots(1,2)sns.countplot(x="gender", data=data, ax=axes[0]) #左圖sns.countplot(y="gender", data=data, ax=axes[1]) #右圖fig,axes=plt.subplots(1,2)sns.countplot(x="gender", hue="smoker", data=data, ax=axes[0]) #左圖sns.countplot(y="gender", hue="smoker", data=data, ax=axes[1]) #右圖fig,axes=plt.subplots(2,1)sns.countplot(x="color", data=data, ax=axes[0]) #上圖sns.countplot(x="color", data=data, palette="Set3", ax=axes[1]) #下圖pointplot入門
點(diǎn)圖代表散點(diǎn)圖位置的數(shù)值變量的中心趨勢估計(jì),并使用誤差線提供關(guān)于該估計(jì)的不確定性的一些指示。點(diǎn)圖可能比條形圖更有用于聚焦一個(gè)或多個(gè)分類變量的不同級(jí)別之間的比較。他們尤其善于表現(xiàn)交互作用:一個(gè)分類變量的層次之間的關(guān)系如何在第二個(gè)分類變量的層次之間變化。連接來自相同色調(diào)等級(jí)的每個(gè)點(diǎn)的線允許交互作用通過斜率的差異進(jìn)行判斷,這比對(duì)幾組點(diǎn)或條的高度比較容易。具體用法如下:
seaborn.pointplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=(function mean), ci=95, n_boot=1000, units=None, markers='o', linestyles='-', dodge=False, join=True, scale=1, orient=None, color=None, palette=None, errwidth=None, capsize=None, ax=None, **kwargs)
下面繼續(xù)使用之前的數(shù)據(jù)集進(jìn)行繪圖,和barplot相同的參數(shù)就不再具體演示,重點(diǎn)演示pointplot獨(dú)有的。
sns.set() #初始化seaborn配置sns.set_style("darkgrid") #灰色網(wǎng)格背景sns.pointplot(x="smoker", y="age", data=data)圖中的點(diǎn)為這組數(shù)據(jù)的平均值點(diǎn),豎線則為置信區(qū)間,默認(rèn)兩個(gè)均值點(diǎn)會(huì)相連接,若不想顯示,可以通過join參數(shù)實(shí)現(xiàn):
sns.pointplot(x="smoker", y="age", data=data, join=False)之前我們演示過barplot的hue參數(shù),現(xiàn)在我們看一下pointplot的hue參數(shù):
sns.pointplot(x="smoker", y="age", data=data, hue="gender")我們可以看到兩個(gè)類別的誤差棒重疊在了一起,使數(shù)據(jù)觀測不清晰。怎么解決這個(gè)問題呢?pointplot的dodge參數(shù)可以使重疊的部分錯(cuò)開:
sns.pointplot(x="smoker", y="age", data=data, hue="gender", dodge=True)接下來我們對(duì)均值點(diǎn)的樣式(由參數(shù)markers控制)和相同色調(diào)的點(diǎn)之間的連線(由參數(shù)linestyles控制)做一下改動(dòng)。
sns.pointplot(x="smoker", y="age", data=data, hue="gender", dodge=True, markers=["*","x"], linestyles=["-.","--"])其他樣式請(qǐng)參考matplotlib線條樣式
將X,Y軸互換
sns.pointplot(x="age",y="color",data=data)通過color參數(shù)控制不同單層圖的顏色
sns.pointplot(x="age",y="color",data=data,color="#bb3f3f")還有其他效果和barplot一樣的參數(shù),大家可以動(dòng)手自己試一下。以上內(nèi)容是我結(jié)合官方文檔和自己的一點(diǎn)理解寫成的,有什么錯(cuò)誤大家可以指出來并提提意見,共同交流、進(jìn)步,也希望我寫的這些能夠給閱讀完本文的你或或少的幫助!
總結(jié)
以上是生活随笔為你收集整理的python 竖线 绘图_Python可视化 | Seaborn5分钟入门(二)——barplot countplot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u大侠装服务器系统,U大侠一键U盘装系统
- 下一篇: 自制“低奢内”CSS3登入表单,包含JS