我试图在指定的地理位置上绘制散点热力图。我可以很好地绘制没有背景的普通散点图,但是我想将其与给定的纬度和经度结合起来。 我得到了下面这张空白的地图。
输入
输入:col[2]
和 col[3]
是 x
和 y
坐标 & 地理位置 纬度:19.997453
,经度:73.789802
000000000023 61.0 19.006113 73.009168
000000000054 65.0 19.009249 73.000342
000000000003 19.0 19.001051 73.000080
000000000012 20.0 19.009390 73.008638
000000000061 82.0 19.008550 73.003605
000000000048 86.0 19.006597 73.001057
00000000005d 60.0 19.003857 73.009618
000000000006 60.0 19.003370 73.009112
000000000037 91.0 19.002558 73.000546
000000000047 32.0 19.006061 73.008239
程序
from matplotlib import pyplot as plt
from matplotlib import cm as CM
from matplotlib import mlab as ml
from mpl_toolkits.basemap import Basemap
import numpy as np
m = Basemap(width=12000000, height=9000000, projection='lcc',
resolution='c', lat_0=19.,lon_0=73.)
m.drawcoastlines(linewidth=0.25)
data = np.loadtxt('random_lat_lon_0', unpack=True,
dtype='str, float, float, float')
x = data[2]
y = data[3]
z = data[1]
gridsize = 100
m.hexbin(x, y, C=z, gridsize=gridsize)
cb = m.colorbar()
#m.set_label('Density')
plt.show()
没有报错,但我只看到空白地图,没有散点图数据。
如何解决?谢谢!
m.imshow(data, interpolation = 'none')
处报错。data
数组形状为(N, 6)
,无法解释为图像。您需要提供一个像(N, M, 3)
这样的像素值网格给imshow
,其中最后一个维度表示RGB值。 - wflynny