当前位置:   article > 正文

核密度函数图matlab_Python可视化23|seaborn.distplot单变量分布图(直方图|核密度图)...

color = '#098154

3bbf31e4ed7284553a01f8e504069eca.png
本文介绍seaborn.distplot绘制 单变量分布图直方图核密度图)。

本文内容概要

欢迎随缘关注@pythonic生物人

  • 直方图

e6d2be86c6dd8b5bb81f85f8b6bdcd3a.png
  • ​核密度图

1a0ffc9f1aa8405497efed92014823ce.png
  • 直方图结合核密度图

db4218c13225deb26d5479ed39fe9a94.png

目录

  1. 1、seaborn.distplot
  2. 数据准备
  3. 绘制直方图hist
  4. 修改直方图hist中箱子数bins
  5. 直方图成箱方式
  6. 绘制核密度曲线kernel density estimate (KDE)
  7. seaborn.kdeplot绘制窄宽度核密度曲线
  8. bandwidth (bw),控制核密度曲线胖瘦
  9. 核密度曲线结合直方图
  10. 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(默认绘制直方图)
seaborn.kdeplot()
seaborn.rugplot()
scipy.stats

数据准备

  1. import seaborn as sns
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. np.random.seed(0)
  5. x=np.random.randn(100)#造一个shape为(100,),服从正态分布的对象x
  6. print(x)
  7. print(x.shape)

a955cc64da7b4392b86da220327b0b88.png

绘制直方图hist

  1. plt.figure(dpi=120)
  2. sns.set(style='dark')
  3. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})#修改背景色
  4. g=sns.distplot(x,
  5. hist=True,#默认绘制直方图,详细参考plt.hist
  6. kde=False,
  7. color="#098154")#修改柱子颜色

ce5c2ec74c5b01c71918b513cf6e2bca.png

修改直方图hist中箱子数bins

  1. plt.figure(dpi=120)
  2. sns.set(style='dark')
  3. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
  4. g=sns.distplot(x,
  5. hist=True,
  6. bins=15,#修改箱子个数
  7. kde=False,
  8. color="#098154")

e6d2be86c6dd8b5bb81f85f8b6bdcd3a.png

直方图成箱方式

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

  1. sns.set(style='dark')
  2. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
  3. for i in list('bar,barstacked,step,stepfilled'.split(',')):
  4. plt.figure(dpi=120)
  5. sns.distplot(x,
  6. hist=True,
  7. bins=15,
  8. kde=False,
  9. hist_kws={'histtype':'%s'%i}, #默认为bar,可选barstacked,step,stepfilled
  10. color="#098154")
  11. plt.title("histtype="'%s'%i)
  12. plt.show()

a7e09b26c72ac5ae292435052d91f552.png

e2be4c1e9864e7d89bc65131ba08ea6e.png

ab4988ac0f378319f81baf6fd9185cb6.png

8eae012a9748ab149d853fc04c2e4851.png

绘制核密度曲线kernel density estimate (KDE)

  1. plt.figure(dpi=120)
  2. sns.set(style='dark')
  3. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
  4. g=sns.distplot(x,
  5. hist=False,
  6. kde=True,#开启核密度曲线kernel density estimate (KDE)
  7. kde_kws={'linestyle':'--','linewidth':'1','color':'#098154',#设置外框线属性
  8. 'shade':True,#开启填充
  9. },
  10. )

1a0ffc9f1aa8405497efed92014823ce.png

seaborn.kdeplot绘制窄宽度核密度曲线

  1. plt.figure(dpi=120)
  2. sns.set(style='dark')
  3. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})#修改背景色
  4. g=sns.kdeplot(x,
  5. shade=True,
  6. bw=0.15,#使用窄带宽
  7. color="#098154"
  8. )

69120d56a3c804d5a583517962099025.png

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

类似hist中bin size

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

3c9b1893e425bc2c8fc7a68970b3967e.png

核密度曲线结合直方图

  1. plt.figure(dpi=120)
  2. sns.set(style='dark')
  3. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
  4. g=sns.distplot(x,
  5. hist=True,
  6. kde=True,#开启核密度曲线kernel density estimate (KDE)
  7. kde_kws={'linestyle':'--','linewidth':'1','color':'#c72e29',#设置外框线属性
  8. },
  9. color='#098154',
  10. axlabel='Xlabel',#设置x轴标题
  11. )

db4218c13225deb26d5479ed39fe9a94.png

fit参数

将数据与scipy.stats中的分布拟合,查看数据服从何种分布,更多可参考:https://docs.scipy.org/doc/scipy/reference/stats.html

  1. from scipy.stats import norm#导入正态分布
  2. plt.figure(dpi=120)
  3. sns.set(style='dark')
  4. sns.set_style("dark", {"axes.facecolor": "#e9f3ea"})
  5. g=sns.distplot(x,
  6. hist=True,
  7. kde=False,
  8. kde_kws={'linestyle':'--','linewidth':'1','color':'#c72e29',
  9. },
  10. fit=norm,#
  11. color='#098154',)

c3dfd4edd5cbada8790a22a268d1f88b.png
​ 参考资料: http://seaborn.pydata.org/generated/seaborn.distplot.html#seaborn.distplot

本文结束,欢迎随缘关注@pythonic生物人

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/106566
推荐阅读
相关标签
  

闽ICP备14008679号