カーネル密度推定の等高線図を描きたいと思います.KDEは、等高線プロットの塗りつぶし領域内に統合されています。Python - 等高線内の2Dカーネル密度推定の統合
例として、私は2DデータのKDEを計算想像:
data = np.random.multivariate_normal((0, 0), [[1, 1], [2, 0.7]], 100)
x = data[:, 0]
y = data[:, 1]
xmin, xmax = min(x), max(x)
ymin, ymax = min(y), max(y)
xx, yy = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
positions = np.vstack([xx.ravel(), yy.ravel()])
values = np.vstack([x, y])
kernel = st.gaussian_kde(values)
f = np.reshape(kernel(positions).T, xx.shape)
私はKDEのContourPlotはを描画する方法を知っています。
fig = plt.figure()
ax = fig.gca()
ax.set_xlim(xmin, xmax)
ax.set_ylim(ymin, ymax)
cfset = ax.contourf(xx, yy, f, cmap='Blues')
cset = ax.contour(xx, yy, f, colors='k')
plt.show()
ただし、この等高線図は、塗りつぶされた各領域内の確率密度が何であるかを示しています。代わりに、私は塗りつぶし領域のそれぞれの中に入る総確率を示すプロットを望みます。
ありがとうございます。答えは完全には機能しませんが、解決策に近づいています(少なくとも輪郭が単調であるこの特定のケースでは)。あなたはF [order] = 1 - Fを割り当てるときにあなたが何をするのかを明確にしてください。ありがとうございます – Laura
私は問題を発見しました。この解は、ax.contourf(xx、yy、(1-F)、levels = new_levels)をプロットすると機能します。 – Laura
素晴らしい!だからF [order] = 1-FをF [order] = Fで置き換えて、もう一方の行はそのままにしておきましょう。 F [order] = F行が実際に何をしているかについてのアドバイスが必要ですか? –