【发布时间】:2021-05-20 06:52:44
【问题描述】:
我正在使用 seaborn 核密度估计来绘制概率密度等值线,如下所示:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
x = np.random.normal(0, 3, 100)
y = np.random.normal(0, 1, 100)
fig, ax = plt.subplots()
ax.scatter(x,y, marker='.')
ax.set_aspect('equal')
ax.set(xlim=(-13,13))
ax.set(ylim=(-8,8))
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
sns.kdeplot(x,y, fill=True, shade_lowest=True, alpha=0.7, linewidths=3, \
cmap='coolwarm', ax=ax, cbar=True, cbar_ax = cax)
colour = ax.collections[1].get_facecolor()
我正在制作其中的许多,所以为了比较它们,我想固定地块限制。如您所见,我的问题是当我更改情节的限制时,seaborn 不会填充背景。
我的代码最后一行中的变量colour 包含我想要填充背景的内容。我需要帮助弄清楚如何做到这一点。我试过了
ax.set_facecolor(colour.reshape(4))
这个问题与this 6 岁的问题基本相同,后者建议只删除最后一个轮廓下方的填充。我相信必须有一种方法来获得所需的行为。非常感谢任何帮助!
作为奖励:sns.kdeplot() 的 linewidths 参数什么都不做。如何更改等高线的线宽?
【问题讨论】:
-
您可以使用
cut参数执行此操作,但可能需要一些试验和错误才能找到合适的值。
标签: python seaborn background-color kde