python数据分布统计_Python 数据可视化:数据分布统计图和热图
本課將繼續介紹 Seaborn 中的統計圖。一定要牢記,Seaborn 是對 Matplotlib 的高級封裝,它優化了很多古老的做圖過程,因此才會看到一個函數解決問題的局面。
2.4.1 數據分布統計圖
在統計學中,研究數據的分布情況,也是一個重要的工作,比如某些數據是否為正態分布——某些機器學習模型很在意數據的分布情況。
在 Matplotlib 中,可以通過繪制直方圖將數據的分布情況可視化。在 Seaborn 中,也提供了繪制直方圖的函數。
%matplotlib inline
import seaborn as sns
import numpy as np
sns.set()
np.random.seed(0)
x = np.random.randn(100)
ax = sns.distplot(x)
輸出結果:
enter image description here
sns.distplot 函數即實現了直方圖,還順帶把曲線畫出來了——曲線其實代表了 KDE。
seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)
除了 sns.distplot 之外,在 Seaborn 中還有另外一個常用的繪制數據分布的函數 sns.kdeplot,它們的使用方法類似。
2.4.2 聯合統計圖
首先看這樣一個示例。
sns.set(rc={'axes.facecolor':'cornflowerblue', 'figure.facecolor':'cornflowerblue'}) #①
tips = sns.load_dataset("tips")
jg = sns.JointGrid(x='total_bill', y='tip', data=tips) #②
輸出結果:
image
① 的作用是設置所得圖示的背景顏色,這樣做的目的是讓下面的 ② 繪制的圖像顯示更清晰,如果不設置 ①,在顯示的圖示中看到的就是白底圖像,有的部分看不出來。
② 最終得到的是坐標網格,而且在圖中分為三部分,如下圖所示。
image
相對于以往的坐標網格,多出了 B 和 C 兩個部分。也就是說,不僅可以在 A 部分繪制某種統計圖,在 B 和 C 部分也可以繪制。
繼續操作:
jg = sns.JointGrid(x='total_bill', y='tip', data=tips)
jg.plot(sns.regplot, sns.distplot) #③
輸出結果:
image
語句 ③ 實現了在坐標網格中繪制統計圖的效果,jp.plot 方法以兩個繪圖函數為參數,分別在 A 部分繪制了回歸統計圖,在 B 和 C 部分繪制了直方圖,而且直方圖分別表示了對應坐標軸數據的分布,即:
A 部分表示的是兩個特征之間的關系;
B 和 C 部分分別表示某一個特征的數據分布。
我們把有語句 ② 和 ③ 共同實現的統計圖,稱為聯合統計圖。除了用 ② ③ 兩句可以繪制這種圖之外,還有一個函數也能夠“兩步并作一步”,具體如下:
seaborn.jointplot(x, y, data=None, kind='scatter', stat_func=None, color=None, height=6, ratio=5, space=0.2, dropna=True, xlim=None, ylim=None, joint_kws=None, marginal_kws=None, annot_kws=None, **kwargs)
注意,參數 kind 的取值只能是“scatter”、“reg”、“resid”、“kde”、“hex”中的一個,這就規定了在 A 區中所顯示的統計圖的種類。
sns.set()
sns.jointplot(x="total_bill", y="tip", kind='reg', data=tips) #④
輸出結果:
總結
以上是生活随笔為你收集整理的python数据分布统计_Python 数据可视化:数据分布统计图和热图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【LTE】Qualcomm LTE Pa
- 下一篇: Python 爬虫监控女神的QQ空间新的