如何删除具有两个分布的图上的 KDE 图?

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

我使用 sns.histplot 创建了一个具有 2 个分布的图。我只想要一个 kde 行用于一个发行版。

See plot here

我想保留橙色 kde 图并删除蓝色 kde 图,同时保留所有直方图(蓝色和橙色)。

我怎样才能做到这一点?

fig = plt.figure(figsize=(15,10))
sns.displot([Afa2['Normal Score Modified'],Afa2['Normal Score'],],kde=[True],stat='density')


plt.ylim(0,0.25)
plt.xlim(-3,3)
plt.show()
python matplotlib seaborn
1个回答
0
投票

对代码的最小更改就是简单地删除不需要的曲线。 您应该删除对

plt.figure()
的调用,因为
sns.displot
创建自己的图形。
sns.displot
可以创建一个或多个子图(取决于其参数)。各个子图的高度通过
height=
设置,宽度为
height * aspect_ratio

这是一个可重现的示例。

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

values = np.random.randn(5000)
Afa2 = pd.DataFrame({'Normal Score': values})
Afa2['Normal Score Modified'] = np.where(values < 0, -1, values)
g = sns.displot(data=Afa2[['Normal Score Modified', 'Normal Score']], kde=True, stat='density',
                height=10, aspect=1.5)

g.set(ylim=(0, 0.25), xlim=(-3, 3))
g.ax.lines[1].remove()

plt.show()

sns.displot with one kde curve removed

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