Я пытаюсь создать совместный сюжет с Seaborn, используя следующий код:
import seaborn as sns
import pandas as pd
import numpy as np
import matplotlib.pylab as plt
testdata = pd.DataFrame(np.array([[100, 1, 3], [5, 2, 6], [25, 3, -4]]), index=['A', 'B', 'C'], columns=['counts', 'X', 'Y'])
counts = testdata['counts'].values
sns.jointplot('X', 'Y', data=testdata, kind='kde', joint_kws={'weights':counts})
plt.savefig('test.png')
Теперь joint_kws
не вызывает ошибку, но веса точно не учитываются, как видно на графике:
Я также пытался сделать это с помощью JointGrid
, передавая веса маргинальным распределениям:
g = sns.JointGrid('X', 'Y', data=testdata)
x = testdata['X'].values
y = testdata['Y'].values
g.ax_marg_x.hist(x, bins=np.arange(-10,10), weights=counts)
g.ax_marg_y.hist(y, bins=np.arange(-10,10), weights=counts, orientation='horizontal')
g.plot_marginals(sns.distplot)
g.plot_join(sns.kdeplot, joint_kws={'weights':counts})
plt.savefig('test.png')
Но это работает только для маргинальных распределений, а общий график все еще не взвешен:
Кто-нибудь знает, как это сделать?