欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

seaborn繪制雙變量聯(lián)合分布圖示例詳解

 更新時間:2022年12月25日 10:08:03   作者:純純子  
這篇文章主要為大家介紹了seaborn繪制雙變量聯(lián)合分布圖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

繪制雙變量聯(lián)合分布圖

有時我們不僅需要查看單個變量的分 布,同時也需要查看變量之間的聯(lián)系, 往往還需要進行預測等。這時就需要用到雙變量聯(lián)合分布了。

下面我們一起來看一下連續(xù)數(shù)值型數(shù)據(jù)雙變量之間的可視化方法。

在Seaborn中繪制連續(xù)數(shù)值型雙變量我們使用sns.jointplot():

說明文檔:https://seaborn.pydata.org/generated/seaborn.jointplot.html

 seaborn.jointplot(x, y, data=None, kind='scatter')
  • x、y:分別記錄x軸和y軸的數(shù)據(jù)名稱。
  • data:數(shù)據(jù)集,data的數(shù)據(jù)類型為DataFrame。
  • kind:用于設置圖像的類型,可選的類型有: 'scatter' | 'reg' | 'resid' | 'kde' | 'hex',分別表示散點圖、回歸圖、殘差圖、 核密度圖和蜂巢圖。

散點圖

如果我們希望看一看數(shù)據(jù)中兩個變量在二維平面上之間的關系時, 則可以使用散點圖,因為散點圖可以幫助我們很容易地發(fā)現(xiàn)一些數(shù)據(jù)的分布規(guī)律。

 import numpy as np
 import seaborn as sns
 import pandas as pd
 import matplotlib.pyplot as plt
 df =pd.DataFrame({'x':np.random.normal(size=500),
                  'y':np.random.normal(size=500)})
 sns.jointplot(x='x',y='y',data=df,kind='reg')
 plt.show()

雙變量散點圖:

  • 根據(jù)結果我們發(fā)現(xiàn), sns.jointplot()函數(shù)可以顯示兩個變量之間的聯(lián)合關系以及每個單變量的分布。
  • 我們把函數(shù)中的 kind 參數(shù)設置為'reg' 就可以做一些簡單的線性模型擬合。
  • 并且在坐標系的上方和右側分別繪制了兩個變量的直方圖和核密度圖。

蜂巢圖

上面我們根據(jù)數(shù)據(jù)繪制了聯(lián)合散點圖,但是你會發(fā) 現(xiàn)兩個數(shù)據(jù)并沒有明確的線性關系,并且散點圖有 一個問題,就是相同的點會覆蓋在一起,導致我們 看不出來濃密和稀疏。 所以我們可以使用蜂巢圖查看一下數(shù)據(jù)的分布情況。

蜂巢圖的繪制還是使用seaborn.jointplot()函 數(shù),只是將kind參數(shù)更該為hex即可。

 import numpy as np
 import seaborn as sns
 import pandas as pd
 import matplotlib.pyplot as plt
 df =pd.DataFrame({'x':np.random.normal(size=500),
                  'y':np.random.normal(size=500)})
 sns.jointplot(x='x',y='y',data=df,kind='hex')
 plt.show()

蜂巢圖中每個六邊形表示一個范圍, 用顏色表示這個范圍內(nèi)的數(shù)據(jù)量,顏 色越白的地方數(shù)據(jù)量越小,顏色越深 的地方表示數(shù)據(jù)量越大。 當數(shù)據(jù)比較大的時候該種方式,更容易找出數(shù)據(jù)的分布情況。

密度圖

在單變量分析的時候,我們繪制了單變量的概率密度曲線, 在雙變量中我們也可以使用密度圖來分析數(shù)據(jù)的分布情況。 密度圖的繪制還是使用seaborn.jointplot()函數(shù),只是將 kind參數(shù)更該為kde即可。

 import numpy as np
 import seaborn as sns
 import pandas as pd
 import matplotlib.pyplot as plt
 df =pd.DataFrame({'x':np.random.normal(size=500),
                  'y':np.random.normal(size=500)})
 sns.jointplot(x='x',y='y',data=df,kind='kde')
 plt.show()

根據(jù)圖形可以看出,雙變量密度圖是使用一些封閉 但是不規(guī)則的曲線來表示, 數(shù)據(jù)密度越高的地方顏色越深,數(shù)據(jù)密度越低的地方顏色越淺。

 g = sns.jointplot(data=x_data, x=x, y=y)
 g.plot_joint(sns.kdeplot, color="r", zorder=0, levels=6)
 g.plot_marginals(sns.rugplot, color="r", height=-.15, clip_on=False)

 sns.jointplot(
     data=x_data, x=x, y=y,
     marker="+", s=100, marginal_kws=dict(bins=25, fill=False),
 )

以上就是seaborn繪制雙變量聯(lián)合分布圖示例詳解的詳細內(nèi)容,更多關于seaborn繪制雙變量聯(lián)合分布圖的資料請關注腳本之家其它相關文章!

相關文章

最新評論