Python可視化23|seaborn.distplot單變量分布圖(直方圖|核密度圖)

2021-02-20 pythonic生物人

本文介紹seaborn.distplot繪製單變量分布圖直方圖核密度圖)。

本文內容概要

目錄
1、seaborn.distplot
數據準備
繪製直方圖hist
修改直方圖hist中箱子數bins 
直方圖成箱方式 
繪製核密度曲線kernel density estimate (KDE)
seaborn.kdeplot繪製窄寬度核密度曲線 
bandwidth (bw),控制核密度曲線胖瘦
核密度曲線結合直方圖
fit參數

seaborn.distplot簡介

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)
http://seaborn.pydata.org/generated/seaborn.distplot.html#seaborn.distplot
整合了如下三個函數:

matplotlib中的直方圖hist(默認繪製直方圖)數據準備
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0)
x=np.random.randn(100)#造一個shape為(100,),服從正態分布的對象x
print(x)
print(x.shape)

繪製直方圖hist
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})#修改背景色
g=sns.distplot(x,
               hist=True,#默認繪製直方圖,詳細參考plt.hist
               kde=False,
               color="#098154")#修改柱子顏色

修改直方圖hist中箱子數bins
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
g=sns.distplot(x,
               hist=True,
               bins=15,#修改箱子個數
               kde=False,
               color="#098154")

直方圖成箱方式

有4種方式:'bar,barstacked,step,stepfilled'。

sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
for i in list('bar,barstacked,step,stepfilled'.split(',')):
    plt.figure(dpi=120)
    sns.distplot(x,
                 hist=True,
                 bins=15,
                 kde=False,
                 hist_kws={'histtype':'%s'%i}, #默認為bar,可選barstacked,step,stepfilled
                 color="#098154")
    plt.title("histtype="'%s'%i)
    plt.show()

 

繪製核密度曲線kernel density estimate (KDE)
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
g=sns.distplot(x,
               hist=False,
               kde=True,#開啟核密度曲線kernel density estimate (KDE)
               kde_kws={'linestyle':'--','linewidth':'1','color':'#098154',#設置外框線屬性
                        'shade':True,#開啟填充                        
                       },
              )

seaborn.kdeplot繪製窄寬度核密度曲線
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})#修改背景色
g=sns.kdeplot(x,
              shade=True,
              bw=0.15,#使用窄帶寬
              color="#098154"
              )

bandwidth (bw),控制核密度曲線胖瘦

類似hist中bin size


plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
sns.kdeplot(x,shade=True, label="bw: defult")
sns.kdeplot(x, bw=.2, label="bw: 0.2")
sns.kdeplot(x, bw=2, label="bw: 2")
plt.legend();

核密度曲線結合直方圖
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
g=sns.distplot(x,
               hist=True,
               kde=True,#開啟核密度曲線kernel density estimate (KDE)
               kde_kws={'linestyle':'--','linewidth':'1','color':'#c72e29',#設置外框線屬性                                               
                       },
               color='#098154',
               axlabel='Xlabel',#設置x軸標題
               
              )

fit參數

將數據與scipy.stats中的分布擬合,查看數據服從何種分布,更多可參考:https://docs.scipy.org/doc/scipy/reference/stats.html

from scipy.stats import norm#導入正態分布
plt.figure(dpi=120)
sns.set(style='dark')
sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
g=sns.distplot(x,
               hist=True,
               kde=False,
               kde_kws={'linestyle':'--','linewidth':'1','color':'#c72e29',                                              
                       },
               fit=norm,#
               color='#098154',

參考資料:http://seaborn.pydata.org/generated/seaborn.distplot.html#seaborn.distplot


相關焦點

  • python可視化(三)seaborn單變量分析繪圖(直方圖、條形圖)
    在前面兩篇文章中,我們已經學習了seaborn繪圖的風格和顏色設置,從本篇文章開始,我們開始選一些有意思的數據集進行各種圖形繪製,在實踐中感受數據可視化的魅力。本篇文章主要講2個繪圖函數,那就是繪製直方圖的函數seaborn,distplot()和繪製條形圖的函數seaborn.barplot()(關於直方圖和條形圖的區別請查閱前面matplotlib系列中的相關文章)。處理繪圖數據今天我們用直方圖和條形圖展示下NBA2017-2018賽季各球員薪資情況。
  • Seaborn可視化-核密度分布圖 seaborn.kdeplot
    核密度估計(kernel density estimation)是在概率論中用來估計未知的密度函數,屬於非參數檢驗方法之一。通過核密度估計圖可以比較直觀的看出數據樣本本身的分布特徵。具體用法如下。
  • Python可視化Seaborn庫詳解——繪圖方法
    ",data=df)sns.scatterplot(x="passengerid",y="age",data=df)03分類關係可視化分類關係有兩個一般性繪圖方法:catplot和distplot。distplot直方圖是較為特殊的分類關係圖,雖然它屬於分布函數,但也可視為一種分類。該函數通過hist和kde參數可控制繪製的圖是直方圖還是密度圖,或是二者的結合。
  • 14個Seaborn數據可視化圖
    數據可視化在數據挖掘中起著非常重要的作用。各種數據科學家花費了他們的時間通過可視化來探索數據。為了加快這一進程,我們需要有合適的工具。沒有規劃的情況下,資源也無法轉化為有價值的商品。因此,我希望本文能夠為您提供關於所有可視化方法的架構。目錄簡介了解你的數據分布曲線a. 直方圖b. 聯合圖c. 配對圖d. Rug圖分布圖a. 條形圖b.
  • 用Python演繹5種常見可視化視圖
    同樣,按照變量的個數,我們可以把可視化視圖劃分為單變量分析和多變量分析。可視化的視圖可以說是分門別類,多種多樣,今天我主要介紹常用的5種視圖,包括了散點圖、折線圖、直方圖、熱力圖、成對關係。散點圖的英文叫做scatter plot,它將兩個變量的值顯示在二維坐標中,非常適合展示兩個變量之間的關係。
  • python可視化
    例如,這裡是一個箱形圖,表示對[0,1)上的統一隨機變量的10次觀察的五次試驗。單維度與關聯維度分析單變量分布%matplotlib inlineimport numpy as npimport pandas as pdfrom scipy import stats, integrateimport matplotlib.pyplot as pltimport seaborn as snssns.set(color_codes=True)np.random.seed
  • 小白也能看懂的seaborn入門示例
    箱圖violinplot() 小提琴圖boxenplot() 增強箱圖pointplot() 點圖barplot() 條形圖countplot() 計數圖jointplot() 雙變量關係圖pairplot() 變量關係組圖distplot() 直方圖,質量估計圖kdeplot
  • 技能分享|Python數據可視化利器:Seaborn使用方法(一)
    (數據連結:https://pan.baidu.com/s/19sdHiB5PRy-VSc3S0sYDnQ)04基礎的直方圖、曲線圖等我們就不再一一示範,本篇中,我們主要示範散點圖、箱線圖、小提琴圖、單變量密度估計圖、雙變量密度估計圖、熱力圖、矩陣散點圖的繪製。
  • 用Seaborn繪製圖表
    使用seaborn和Pokemon(口袋妖怪)數據集的屬性,我們將創建一些非常有趣的可視化效果。我們首先要看的是散點圖。散點圖散點圖使用點來表示不同數值變量的值。每個點在水平軸和垂直軸上的位置表示單個數據點的值。它們用於觀察變量之間的關係。在seaborn中製作散點圖只需要使用「lmplot」函數。
  • Python數據可視化:用Seaborn繪製高端玩家版散點圖
    散點圖是用於研究兩個變量之間關係的經典的和基本的圖表。如果數據中有多個組,則可能需要以不同顏色可視化每個組。  今天我們畫普通散點圖、邊際分布線性回歸散點圖、散點圖矩陣、帶線性回歸最佳擬合線的散點圖  本文示例多是來自官方文檔,這裡我只是做一下整理,讓大家知道散點圖的不同玩法,不要再繪製老掉牙的普通玩家版散點圖了。  普通玩家繪製的散點圖  在 matplotlib 中,可以使用 plt.scatterplot() 方便地執行此操作。
  • python數據分析常用圖大集合
    y': y})sns.lineplot(x="x", y="y", data=df)plt.show()二、直方圖直方圖是比較常見的視圖,它是把橫坐標等分成了一定數量的小區間,然後在每個小區間內用矩形條(bars)展示該區間的數值a = np.random.randn(100)s = pd.Series(a)Matplotlibplt.hist
  • python數據可視化(一)seaborn介紹及繪圖風格設置
    seaborn庫是對matplotlib庫更高級別的封裝,相當於提供了各種統計圖的模板,我們只需要將自己的數據傳入相應的方法即可,所以說,如果你學懂了前面matplotlib中的基礎繪圖方法的話,學習本主題內容將非常輕鬆(註:由於系統編輯器限制,所有代碼行有加粗的無序列表表示。)首先,我們還是來看一下seaborn庫主要學習的內容及篇幅安排。
  • 數據可視化最有價值的50個圖表 | 網際網路數據資訊網-199IT | 中文...
    在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。 這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。 或者,如果您想要顯示值如何隨時間變化,請查看「變化」部分,依此類推。
  • 50種常用的matplotlib可視化,再也不用擔心模型背著我亂跑了
    如下所示為 7 種不同類型的可視化圖表:協相關性主要描述的是不同變量之間的相互關係;偏差主要展現出不同變量之間的差別;排序主要是一些有序的條形圖、散點圖或斜線圖等;分布就是繪製概率與統計中的分布圖,包括離散型的直方圖和連續型的概率密度分布圖等。後面還有變量的時序變化圖和類別圖等常見的可視化製圖類別。
  • 箱形圖、小提琴圖、直方圖……統統可以卡通化!
    全文共11345字,預計學習時長23分鐘或更長對於數據科學家來說,可視化工具比比皆是,因此,退一步去鑽研每種可視化的類型及其適用的最佳案例就變得十分重要。為了發揮工具的最佳效用,有時可以考慮將其擬人化,甚至是將其變成卡通人物。為了更好地理解圖表,本文將其設計成了一系列卡通人物。
  • Python學習第89課-數據可視化之直方圖繪製
    【每天幾分鐘,從零入門python編程的世界!】假設你想投資某一個城市的房地產,你肯定需要對這個城市的人口分布、增長潛力做一個調查,這時我們就需要做一個直方圖(histogram plot)。實例:假設我們有一份C城市的人口年齡的數據,我們為方便起見,在這裡只列出很少的一部分數據,用一個列表City_C_Age表示這個城市的人口年齡數據:City_C_Age=[2,3,1,7,4,5,3,1,7,6,9,8,13,16,12,17,15,14,18,,20,23,28,25,23,27,25,29,26,24,25,30,34,37,36,38,32,35,37,36,41,42,47,47,48,43,46,44,53,54,58,52,51,55,56,69,60,63,67,64,72,74,78,75,89,85,83,90,93
  • MedCalc16: 4.3.1分布圖: 直方圖
    4.3 分布圖MedCalc的分布圖包括直方圖(histogram)、累積頻率分布圖(cumulative frequency distribution
  • 使用Pandas,Seaborn和Plotly繪製漂亮的圖表
    sns.reset_defaults()sns.set(rc={'figure.figsize':(7,5)},style="white" # nicer layout )繪製單變量分布如前所述,我非常喜歡分布。 直方圖和核密度分布都是可視化特定變量的關鍵特徵的有效方法。
  • 散點圖、箱線圖、核密度函數……數據分析必備的9種可視化圖表
    df.plot.scatter(x='sepal length(cm)', y='sepal width (cm)')為了生成此圖,需要通過其列名來指定圖的x軸和y軸。這個圖表顯示這兩個變量之間沒有很強的相關性。