我正在尝试在一起制作两个seaborn核密度图(kdeplot
)。
这里使用了三个特征(社区学校?, 经济需求指数, 学校收入估计)。唯一的分类特征"Community School?"以绿蓝色表示其级别。"经济需求指数"和"学校收入估计"分别用于两个kdeplots。
使用下面显示的代码创建的图像是我能得到的最佳结果,但它存在问题。
1) 第二个图的y轴刻度错误(它应该是一些整数刻度,就像第一个图一样)更正: kdeplot
是规范化的(所有值加起来等于1),因此给定其x值,y轴是正确的。
2) 在两个图下方产生了一个额外的轴(?)
3) 我想为每个子图添加一个标题
我发现kdeplot
不支持hue
,所以我试图让它与FacetGrid
一起工作。不确定这是否是正确的方法。如果提供更好的方法,将不胜感激。
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.subplots_adjust(wspace=.8)
fg = sns.FacetGrid(df, hue='Community School?', size=3)
fg.map(sns.kdeplot, 'Economic Need Index', shade=True, ax=ax1, label='Economic Need Index')
fg.map(sns.kdeplot, 'School Income Estimate', shade=True, ax=ax2, label='School Income Estimate')
plt.show()
# my dataset looks like:
Community School? / Economic Need Index / School Income Estimate
0 Yes 0.919 31141.72
1 No 0.641 56462.88
2 No 0.744 44342.61
3 No 0.860 31454.00
4 No 0.730 46435.59
5 No 0.858 39415.45
6 No 0.499 43706.73
7 No 0.833 28820.67
8 No 0.849 34889.24
9 No 0.861 35545.10
10 No 0.559 40809.90
11 Yes 0.917 27881.59
12 Yes 0.832 NaN
13 No 0.791 NaN
14 No 0.362 63760.00
15 No 0.771 NaN
16 No 0.451 62519.57
17 No 0.430 57504.48
18 No 0.448 56787.20
19 No 0.764 NaN
20 No 0.610 NaN
21 No 0.257 76833.96
22 No 0.597 NaN
23 No 0.769 32817.79
24 No 0.858 26114.78
25 No 0.176 103399.19
26 No 0.101 144270.13
27 No 0.293 98455.77
28 No 0.430 88011.14
29 No 0.153 102421.46
... ... ... ...
完整数据集可以在这里找到。