我使用 sns.histplot 创建了一个具有 2 个分布的图。我只想要一个 kde 行用于一个发行版。
我想保留橙色 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()
对代码的最小更改就是简单地删除不需要的曲线。 您应该删除对
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()