" M"是https://www.dropbox.com/s/vua4nakd8sz3ocy/data.py?dl=0
中定义的GPS坐标数组我可以使用matplotlib函数
hist2d(zip(*m)[0],zip(*m)[1], bins=60, cmap='jet', normed=True)
生成正确的密度热图。
但是,如果我这样使用:
x,y = zip(*m)[:2]
heatmap, xedges, yedges = np.histogram2d(x,y,bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
clf()
scatter(x,y,c='k')
imshow(heatmap, extent=extent, cmap='jet')
它会产生明显错误的热图。为什么会这样?
黑点是GPS点。
答案 0 :(得分:0)
我明白了! numpy中的histogram2d使用横坐标和纵坐标系统,以便与numpy中的histogramdd一致。所以正确的应该是:
x,y = zip(*m)[:2]
heatmap, xedges, yedges = np.histogram2d(y,x,bins=40)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
scatter(x,y,c='k')
imshow(heatmap[::-1], extent=extent,cmap='jet',interpolation='nearest')
无论如何,不建议这样做。