数据可视化(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

整理制作:数据分析与可视化学研社

更多分享,请关注公众号