數據可視化(6)-Seaborn系列 | 直方圖distplot()

  • 2019 年 10 月 7 日
  • 筆記

直方圖

seaborn.distplot() 直方圖,品質估計圖,核密度估計圖

該API可以繪製分別直方圖和核密度估計圖,也可以繪製直方圖和核密度估計圖的合成圖 通過設置默認情況下,是繪製合成圖,設置情況圖下:

hist=True:表示要繪製直方圖(默認情況為True),若為False,則不繪製

kde=True:表示要繪製核密度估計圖(默認情況為True),若為False,則繪製

函數原型

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)

參數解讀

a: Series, 一維數組或列表    要輸入的數據,如果設置name屬性,則該名稱將用於標記數據軸;    以下是可選參數:  bins: matplotlib hist()的參數 或者 None  作用:指定直方圖規格,若為None,則使用Freedman-Diaconis規則,  該規則對數據中的離群值不太敏感,可能更適用於重尾分布的數據。  它使用 bin 大小  [2∗IQR(X(:))∗numel(X)(−1/4),2∗IQR(Y(:))∗numel(Y)(−1/4)][2∗IQR(X(:))∗numel(X)(−1/4),2∗IQR(Y(:))∗numel(Y)(−1/4)] ,  其中 IQR 為四分位差。    hist:bool  是否繪製(標準化)直方圖    kde:bool  是否繪製高斯核密度估計圖    rug:bool  是否在支撐軸上繪製rugplot()圖    {hist,kde,rug,fit} _kws:字典  底層繪圖函數的關鍵字參數    color:matplotlib color  該顏色可以繪製除了擬合曲線之外的所有內容    vertical:bool  如果為True,則觀察值在y軸上,即水平橫向的顯示

案例教程

import seaborn as sns  import numpy as np  import matplotlib.pyplot as plt  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  """  案例1:顯示默認繪圖,其中包含內核密度估計值和直方圖  """  sns.distplot(x,kde=True,hist=False)  plt.show()
import pandas as pd  import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  # 使用pandas來設置x 軸標籤 和y 軸標籤  x = pd.Series(x, name="x variable")  """  案例2:繪製直方圖和核函數密度估計圖  """  sns.distplot(x)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  """  案例3:繪製核密度估計和地圖  """  sns.distplot(x, rug=True, hist=False)  plt.show()
from scipy.stats import norm  import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  """  案例4:繪製直方圖和最大似然高斯分布擬合圖  """  sns.distplot(x, fit=norm, kde=False)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  """  案例5:繪製水平直方圖 (即在垂直軸上繪製分布)  """  sns.distplot(x, vertical=True)  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  """  案例7:改變繪圖元素的顏色  """  sns.set_color_codes()  sns.distplot(x, color="y")  plt.show()
import seaborn as sns  import matplotlib.pyplot as plt  import numpy as np  sns.set()  #構建數據  np.random.seed(0)  x = np.random.randn(100)  # 制定一些繪圖參數  sns.distplot(x, rug=True, rug_kws={"color": "g"},               kde_kws={"color": "k", "lw": 3, "label": "KDE"},               hist_kws={"histtype": "step", "linewidth": 3,                         "alpha": 1, "color": "g"})  plt.show()

案例地址

案例程式碼已上傳:Github https://github.com/Vambooo/SeabornCN

整理製作:數據分析與可視化學研社

更多分享,請關注公眾號