用颜色填充密度图。

4
我有两个密度图,一个在另一个上面。我该如何用两种不同的颜色填充曲线下方的区域,并添加一些透明度,以便重叠区域更加明显。
import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import sys 
import seaborn as sns

x=[1,1,1,1,1,1,1,0,0,0,0,0,0,0]
y=[1,1,1,0,2,0,0,0,1,1,0,1,0,1]
sns.distplot(x, hist=False,color="green")
sns.distplot(y, hist=False,color="blue")

enter image description here

1个回答

9

你尝试过 sns.kdeplot(x, hist=False, color="green", shade=True) 吗?它们显然创建了相同的曲线。

从我所知,它默认是透明的,这应该满足你的要求。

import matplotlib.pyplot as plt
import seaborn as sns

x=[1,1,1,1,1,1,1,0,0,0,0,0,0,0]
y=[1,1,1,0,2,0,0,0,1,1,0,1,0,1]
sns.kdeplot(x, color="green", shade=True)
sns.kdeplot(y, color="blue", shade=True)
plt.show()

Seaborn文档

这是生成的图形:

图形结果


1
distplot中没有阴影参数。 - Ayan Mitra
我们可以看到,如果我们在seaborn中使用kdeplot()函数,我们会得到相同的曲线。这个函数被distplot()使用,但是它提供了一个更直接的接口,当你只想要密度估计时,可以更容易地访问其他选项:基本上,使用kdeplot()来查看是否得到相同的曲线。 - pythomatic
1
我编辑了答案,以便进行代码格式化。 - pythomatic
2
@Eqomatic 看起来你需要在 kdeplot 方法中将 hist=False 替换为 shade=True - Vlas Sokolov
1
答案已更改以反映这些差异,谢谢! - pythomatic
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接