# 设置数据 import seaborn as sns data = sns.load_dataset('iris') # 绘制密度图 sns.kdeplot(df['sepal_width'])
OUTPUT:
import seaborn as sns import matplotlib.pyplot as plt data = sns.load_dataset('iris') # shade添加阴影,默认为无 sns.kdeplot(data['sepal_width'], shade=True) plt.show()
OUTPUT:
import seaborn as sns import matplotlib.pyplot as plt data = sns.load_dataset('iris') # 设置方向 sns.kdeplot(data['sepal_width'], vertical=True) plt.show()
OUTPUT:
import seaborn as sns import matplotlib.pyplot as plt data = sns.load_dataset('iris') # 改变带宽 sns.kdeplot(data['sepal_width'], bw_method=0.05) plt.show()
OUTPUT:
import seaborn as sns import matplotlib.pyplot as plt data = sns.load_dataset('iris') # 在一张图上绘制多个密度图 fig = sns.kdeplot(data['sepal_width'], color="r") fig = sns.kdeplot(data['sepal_length'], color="b") plt.show()
OUTPUT:
import numpy as np from numpy import linspace import pandas as pd import seaborn as sns import matplotlib.pyplot as plt from scipy.stats import gaussian_kde # 数据设置,使用DataFrame df = pd.DataFrame({ 'v1': np.random.normal(size=1000), 'v2': np.random.normal(loc=2, size=1000) * -1 }) # 绘制第一个变量密度图 sns.kdeplot(data=df, x="v1", fill=True, alpha=1) # 绘制第二个变量密度图 kde = gaussian_kde(df.v2) x_range = linspace(min(df.v2), max(df.v2), len(df.v2)) # 形成镜像图 sns.lineplot(x=x_range*-1, y=kde(x_range) * -1, color='skyblue') plt.fill_between(x_range*-1, kde(x_range) * -1, color='skyblue') # x轴设置 plt.xlabel("value") plt.axhline(y=0, linestyle='-',linewidth=1, color='black') plt.show()
OUTPUT: