y軸マージンに複数の重ね合わせたkdeプロットをプロットすることができます(x軸のマージンプロットは必要ありません)。それぞれのkdeプロットは色カテゴリ(4つあります)に対応していますので、4つのkdeのそれぞれのカテゴリの分布を示しています。これは、私の知る限りだとされていますseaborn plot_marginals複数のkdeplots
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
x = [106405611, 107148674, 107151119, 107159869, 107183396, 107229405, 107231917, 107236097,
107239994, 107259338, 107273842, 107275873, 107281000, 107287770, 106452671, 106471246,
106478110, 106494135, 106518400, 106539079]
y = np.array([ 9.09803208, 5.357552 , 8.98868469, 6.84549005,
8.17990909, 10.60640521, 9.89935692, 9.24079133,
8.97441459, 9.09803208, 10.63753055, 11.82336724,
7.93663794, 8.74819285, 8.07146236, 9.82336724,
8.4429435 , 10.53332973, 8.23361968, 10.30035256])
x1 = pd.Series(x, name="$V$")
x2 = pd.Series(y, name="$Distance$")
col = np.array([2, 4, 4, 1, 3, 4, 3, 3, 4, 1, 4, 3, 2, 4, 1, 1, 2, 2, 3, 1])
g = sns.JointGrid(x1, x2)
g = g.plot_joint(plt.scatter, color=col, edgecolor="black", cmap=plt.cm.get_cmap('RdBu', 11))
cax = g.fig.add_axes([1, .25, .02, .4])
plt.colorbar(cax=cax, ticks=np.linspace(1,11,11))
g.plot_marginals(sns.kdeplot, color="black", shade=True)
ダウンボッターの説明に注意してください。私はこれがまさにOPによって尋ねられたものだと信じています。 – lanery
なぜseaborn.kdeplot関数を書き換えていますか? – mwaskom
@mwaskom、まあまあです。私はその機能を最近何か他のものに使用していて、ここでそれを不適切に再適用しました。私は、改訂された答えが今よりずっと良いと思う。 – lanery