Python 中的梯度填充分布图

问题描述 投票:0回答:1

我正在尝试在Python中创建一个带有渐变填充的密度图,如下所示:

我尝试使用此代码来执行此操作:

plt.figure(figsize=(6, 1))
sns.kdeplot(data=df, x='Overall Rating', fill=True, palette='viridis')
...and
sns.kdeplot(data=df, x='Overall Rating', fill=True, cmap='viridis')

都不起作用,都输出这个图:

我已经在Python中到处寻找一种方法来做到这一点,但没有运气。我已经尝试实现@Diziet Asahi 这个答案中的方法,但无法理解它。任何帮助将不胜感激!

python plot seaborn gradient kernel-density
1个回答
1
投票
你只需要抓住斧头:

ax = sns.kdeplot(...)

,然后用
for
执行@Diziet Asahi解决方案中的
ax
循环的内部部分。

import matplotlib import matplotlib.pyplot as plt import seaborn as sns import numpy as np sns.set_theme(style='white') tips = sns.load_dataset('tips') ax = sns.kdeplot(data=tips, x='tip', fill=True) sns.despine() cmap = 'turbo' im = ax.imshow(np.linspace(0, 1, 256).reshape(1, -1), cmap=cmap, aspect='auto', extent=[*ax.get_xlim(), *ax.get_ylim()], zorder=10) path = ax.collections[0].get_paths()[0] patch = matplotlib.patches.PathPatch(path, transform=ax.transData) im.set_clip_path(patch) plt.show()

© www.soinside.com 2019 - 2024. All rights reserved.