2016-09-05 20 views
1

サイドにカラーバーがあるSeaborn.kdeplotでカーネル密度推定を作成します。カーネル密度推定-が作成されている間seaborn.kdeplotのカラーバー

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np; np.random.seed(10) 
import seaborn as sns; sns.set(color_codes=True) 
mean, cov = [0, 2], [(1, .5), (.5, 1)] 
x, y = np.random.multivariate_normal(mean, cov, size=50).T 
sns.kdeplot(x,y,shade=True) 
plt.show() 

、私がどのようにカラーバーを作成する手掛かりを持っていません。私は plt.colorbar() を成功裏に使ってみました。

+0

はhttps://github.com/mwaskom/を参照してください。 seboorn/issues/312 – Bart

答えて

4

あなたは直接scipyのダウンロードKDEとmatplotlibの輪郭関数を呼び出す必要がありますが、それは余分なコードのほんの少しです:

import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np; np.random.seed(10) 
import seaborn as sns; sns.set(color_codes=True) 
from scipy import stats 

mean, cov = [0, 2], [(1, .5), (.5, 1)] 
data = np.random.multivariate_normal(mean, cov, size=50).T 

kde = stats.gaussian_kde(data) 
xx, yy = np.mgrid[-3:3:.01, -1:4:.01] 
density = kde(np.c_[xx.flat, yy.flat].T).reshape(xx.shape) 

f, ax = plt.subplots() 
cset = ax.contourf(xx, yy, density, cmap="viridis") 
f.colorbar(cset) 

enter image description here

+0

好奇心から、 'sns.kdeplot'が' Axes'インスタンスとともに 'cset'を返すのはどれくらい難しいでしょうか? – tom

+0

実装するのが技術的に難しいわけではありませんが、すべての軸レベル海底関数の予想される動作に違反し、戻り値を使用する既存のコードをすべて破損します。 matplotlibが他のプロットオブジェクト(行、コレクションなど)と同じように、 'cset'をaxesオブジェクトに追加した方がよいでしょう。 – mwaskom

+0

です。返信いただきありがとうございます – tom

関連する問題