使用 Seaborn 绘制密度图

FiR*_*iTi 5 python matplotlib seaborn

我有一个具有两个特征的数据集,我曾经Seaborn.relplot根据另一个特征来绘制它们,我得到了这个结果:

简单散点图

但我想使用 Seaborn 添加点密度,正如我们可以在本次讨论本次讨论中观察到的那样,请参见下图。

简单密度 在此输入图像描述

我该如何使用 Seaborn 来做到这一点?

Ale*_*lex 8

正如您的第二个链接中所示,但使用sns.scatterplot

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats

tips = sns.load_dataset("tips")

values = np.vstack([tips["total_bill"], tips["tip"]])
kernel = stats.gaussian_kde(values)(values)
fig, ax = plt.subplots(figsize=(6, 6))
sns.scatterplot(
    data=tips,
    x="total_bill",
    y="tip",
    c=kernel,
    cmap="viridis",
    ax=ax,
)
Run Code Online (Sandbox Code Playgroud)

密度颜色映射到点上的散点图

或者,覆盖sns.kdeplot

fig, ax = plt.subplots(figsize=(6, 6))
sns.scatterplot(
    data=tips,
    x="total_bill",
    y="tip",
    color="k",
    ax=ax,
)
sns.kdeplot(
    data=tips,
    x="total_bill",
    y="tip",
    levels=5,
    fill=True,
    alpha=0.6,
    cut=2,
    ax=ax,
)
Run Code Online (Sandbox Code Playgroud)

具有重叠 kde 图的散点图