【发布时间】:2017-11-30 17:42:42
【问题描述】:
我想要制作的是类似于这个情节的东西:
这是一个等高线图,代表了两个数据集中包含的 68%、95%、99.7% 的粒子。
到目前为止,我已经尝试实现高斯 KDE 估计,并将这些粒子高斯分布在轮廓上。
文件添加到这里https://www.dropbox.com/sh/86r9hf61wlzitvy/AABG2mbmmeokIiqXsZ8P76Swa?dl=0
from scipy.stats import gaussian_kde
import matplotlib.pyplot as plt
import numpy as np
# My data
x = RelDist
y = RadVel
# Peform the kernel density estimate
k = gaussian_kde(np.vstack([RelDist, RadVel]))
xi, yi = np.mgrid[x.min():x.max():x.size**0.5*1j,y.min():y.max():y.size**0.5*1j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))
fig = plt.figure()
ax = fig.gca()
CS = ax.contour(xi, yi, zi.reshape(xi.shape), colors='darkslateblue')
plt.clabel(CS, inline=1, fontsize=10)
ax.set_xlim(20, 800)
ax.set_ylim(-450, 450)
ax.set_xscale('log')
plt.show()
制作这个:
]2
其中 1) 我不知道如何控制 gaussain kde 中的 bin 编号,2) 轮廓标签全为零,3) 我不知道确定百分位数。
感谢任何帮助。
【问题讨论】:
-
你有任何样本数据来重现你的情节吗?
-
@Tkanno 我已经添加了
-
导致 Dropbox 链接损坏@DarthLazar
-
过失,我修好了。
标签: python arrays numpy matplotlib contour