kdeplot和distplot的介绍:
#入门---kdeplot和distplot
import numpy as np #导入numpy包,用于生成数组
import seaborn as sns #习惯上简写成sns
import matplotlib.pyplot as plt
from scipy.stats import *
def testkdeplot():
# seaborn.kdeplot(data, data2=None, shade=False, vertical=False, kernel='gau', bw='scott', gridsize=100, cut=3,
# clip=None, legend=True, cumulative=False, shade_lowest=True, cbar=False, cbar_ax=None,
# cbar_kws=None, ax=None, **kwargs)
x = np.random.randn(100) # 随机生成100个符合正态分布的数
# sns.kdeplot(x)
#cut:参数表示绘制的时候,切除带宽往数轴极限数值的多少(默认为3)
# sns.kdeplot(x, cut=0)
#cumulative :是否绘制累积分布
#sns.kdeplot(x, cumulative=True)
#shade:若为True,则在kde曲线下面的区域中进行阴影处理,color控制曲线及阴影的颜色
# sns.kdeplot(x, shade=True, color="g")
#vertical:表示以X轴进行绘制还是以Y轴进行绘制
#sns.kdeplot(x, vertical=True)
#二元kde图像
y = np.random.randn(100)
# sns.kdeplot(x, y, shade=True)
# cbar:参数若为True,则会添加一个颜色棒(颜色帮在二元kde图像中才有)
sns.kdeplot(x, y, shade=True, cbar=True)
plt.show()
def testdistplot():
# 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)
x = np.random.randn(100) # 随机生成100个符合正态分布的数
# sns.distplot(x, color="g")
# 通过hist和kde参数调节是否显示直方图及核密度估计(默认hist, kde均为True)
# fig, axes = plt.subplots(1, 3) # 创建一个一行三列的画布
# sns.distplot(x, ax=axes[0]) # 左图
# sns.distplot(x, hist=False, ax=axes[1]) # 中图
# sns.distplot(x, kde=False, ax=axes[2]) # 右图
# bins:int或list,控制直方图的划分
# fig, axes = plt.subplots(1, 2)
# sns.distplot(x, kde=False, bins=20, ax=axes[0]) # 左图:分成20个区间
# sns.distplot(x, kde=False, bins=[x for x in range(4)],
# ax=axes[1]) # 右图:以0,1,2,3为分割点,形成区间[0,1],[1,2],[2,3],区间外的值不计入。
# rug:控制是否生成观测数值的小细条
# fig, axes = plt.subplots(1, 2)
# sns.distplot(x, rug=True, ax=axes[0]) # 左图
# sns.distplot(x, ax=axes[1]) # 右图
# fit:控制拟合的参数分布图形,能够直观地评估它与观察数据的对应关系(黑色线条为确定的分布)
# sns.distplot(x, hist=False, fit=norm) # 拟合标准正态分布
# hist_kws, kde_kws, rug_kws, fit_kws参数接收字典类型,可以自行定义更多高级的样式
# sns.distplot(x, kde_kws={"label": "KDE"}, vertical=True, color="y")
# norm_hist:若为True, 则直方图高度显示密度而非计数(含有kde图像中默认为True)
fig, axes = plt.subplots(1, 2)
sns.distplot(x, norm_hist=True, kde=False, ax=axes[0]) # 左图
sns.distplot(x, kde=False, ax=axes[1]) # 右图
plt.show()
if __name__=="__main__":
# testkdeplot()
testdistplot()