數據可視化實例 seaborn(1)

數據可視化實例 seaborn(1)

來自專欄 數據分析從0到1

先了解一下seaborn的大概

可以看到seaborn基礎分為三個部分,但是不打算按這三個部分來講解,那樣太無趣了,遇直接看案例,不會的再去查。

使用上篇文章提到的對比分析和分布分析。

Charles:數據分析的基本思路?

zhuanlan.zhihu.com圖標

開始:

數據來源seaborn里自己的包tipsimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inlineplt.rcParams[font.sans-serif]=[SimHei] plt.rcParams[axes.unicode_minus]=False 載入數據源tips=sns.load_dataset(tips)tips.head()

total_bill tip sex smoker day time size

0 16.99 1.01 Female No Sun Dinner 2

1 10.34 1.66 Male No Sun Dinner 3

2 21.01 3.50Male No Sun Dinner 3

3 23.68 3.31 Male No Sun Dinner 2

4 24.59 3.61 Female No Sun Dinner 4

這個數據是某商店顧客給服務員消費的情況,數據包括顧客消費的總金額,消費金額,性別,是否吸煙,消費日期,消費時間,消費人數。

先看著數據的大體情況:describe()

從244個統計數據來看,可以看顧客總消費最多為244美元,最少僅為3美元,平均消費19.7美元,給小費的情況最少1美元,平均給消費將近3美元。

1.對比分析

1.我們想看一下在不同日期顧客不同性別消費的總金額的差別。

#設置畫圖的畫板風格,可以都試一下。white dark whitegrid darkgrid tickssns.set_style(white)fig=plt.figure(figsize=(10,6))ax1=fig.add_subplot()sns.boxplot(x=day,y=total_bill,data=tips)ax2=fig.add_subplot(212)sns.boxplot(x=day,y=total_bill,data=tips,hue=sex)#hue加上第二維度

可以看到男性的消費總金額普遍比女性多,周末的消費金額普遍比工作日多。

箱線圖就是這麼使用,當然我們也可以看一下吸煙者與非吸煙者的差別。不同維度給消費的差別。

2.stripplot 顯示分類變數級別中某些定量變數的值。

sns.stripplot(x=day,y=total_bill,data=tips,jitter=True,size=10)#jitter=True當數據重合較多的時候,可以用這個調整間距

跟箱線圖一樣分析。

2.分布分析

先看最簡單的,我們直接瞅瞅消費總金額和小費金額有沒有線性關係,並且他們的分布是怎樣的。

sns.jointplot(x=tip,y=total_bill,data=tips)

可以看到他們的皮爾遜相關係數為0.68,消費總金額和小費金額呈顯著相關。

當然我們還可以畫高級一點的,對中間的散點圖和上面左面和右面的直方圖分別做修改。

from scipy import statsg=sns.JointGrid(x=total_bill,y=tip,data=tips)#創建繪圖表格區域,設置X軸,y軸#設置中間的圖表g.plot_joint(plt.scatter,color=m,edgecolor=white)#選用散點圖#edgecolor=white點的邊框顏色g.ax_marg_x.hist(tips[total_bill],color=r,alpha=.5,bins=np.arange(0,60,3))#設置X軸上的直方圖g.ax_marg_y.hist(tips[tip],color=r,alpha=.5,bins=np.arange(0,10,1),orientation=horizontal)#orientation=horizontal設置了一個水平參數g.annotate(stats.pearsonr)#選擇顯示相關係數

或者把中間的散點圖變成密度圖,上面和左面的坐標軸變成概率分布圖。

from scipy import statsg=sns.JointGrid(x=total_bill,y=tip,data=tips)#創建繪圖表格區域,設置X軸,y軸#設置中間的圖表g.plot_joint(sns.kdeplot,color=m,edgecolor=white)#選用散點圖g.plot_marginals(sns.distplot,kde=True)#直接顯示上面和左面,不用分別設置。

以上為第一節內容。


推薦閱讀:

可視化 服裝3D結構設計(製版)
06.大雜燴 線性方程組 逆矩陣 列空間 零空間 非方陣
畫給設計師看的營銷大法
【R可視化】將薪比薪
一張圖看懂:比特幣在世界各地合法性

TAG:數據可視化 | 數據分析 | 可視化 |