gpt4 book ai didi

python - Pyplot 散点图到等值线图

转载 作者:太空狗 更新时间:2023-10-29 22:29:42 25 4
gpt4 key购买 nike

我正在使用 pyplot 从 python 中的数千个点制作散点图。我的问题是他们倾向于集中在一个地方,那只是一大团点。

是否有某种功能可以使 pyplot 绘图点上升直到达到某个临界密度,然后使其成为等高线图?

我的问题类似于this one ,其中示例图具有等高线,其中颜色表示绘制点的密度。

Super cool contour plot

这就是我的数据的样子 Lots of yellow points

最佳答案

首先,您需要估算数据的密度。根据您选择的方法,varying result可以获得。

假设您想根据 scipy.stats.gaussian_kde 的示例进行高斯密度估计 ,你可以得到密度高度:

def density_estimation(m1, m2):
X, Y = np.mgrid[xmin:xmax:100j, ymin:ymax:100j]
positions = np.vstack([X.ravel(), Y.ravel()])
values = np.vstack([m1, m2])
kernel = stats.gaussian_kde(values)
Z = np.reshape(kernel(positions).T, X.shape)
return X, Y, Z

然后,您可以使用 contour 绘制它与

X, Y, Z = density_estimation(m1, m2)

fig, ax = plt.subplots()

# Show density
ax.imshow(np.rot90(Z), cmap=plt.cm.gist_earth_r,
extent=[xmin, xmax, ymin, ymax])

# Add contour lines
plt.contour(X, Y, Z)

ax.plot(m1, m2, 'k.', markersize=2)

ax.set_xlim([xmin, xmax])
ax.set_ylim([ymin, ymax])
plt.show()

作为替代方案,您可以根据其密度更改标记颜色,如图所示 here .

关于python - Pyplot 散点图到等值线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com