4
大洲我试图在使用散点图“锤”底图绘制的数据集。但是,这些数据点不会绘制在各大洲之上。我在matplotlib example中注意到,大陆上也没有数据(我认为这是由于例子的性质)。我想知道如果我做错了什么,或者如果数据不能在设计上使用“锤子”绘制在大陆之上。散点图数据不会出现在“锤”底图
如果是这样的话,有没有用在整个地球绘制散点图数据的理想底图(使用的地形图将是巨大的,但我想在这一点上解决任何东西)?
大洲我试图在使用散点图“锤”底图绘制的数据集。但是,这些数据点不会绘制在各大洲之上。我在matplotlib example中注意到,大陆上也没有数据(我认为这是由于例子的性质)。我想知道如果我做错了什么,或者如果数据不能在设计上使用“锤子”绘制在大陆之上。散点图数据不会出现在“锤”底图
如果是这样的话,有没有用在整个地球绘制散点图数据的理想底图(使用的地形图将是巨大的,但我想在这一点上解决任何东西)?
你可能缺少关键字来解释LAT-LON数据等。从帮助Basemap.scatter:
如果
latlon
关键字设置为True,x,y是intrepreted经度 和纬度度数。数据和经度是自动 转移到圆柱形和 伪圆柱突起,并且x匹配地图投影区域,Y变换为映射 投影坐标。如果latlon
为False(默认值),x和y是 假定为地图投影坐标。
我还需要增加z-order以便分散在大陆和海洋之上。
import time, calendar, datetime, numpy
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# draw map with markers for float locations
m = Basemap(projection='hammer',lon_0=180)
m.drawmapboundary(fill_color='#99ffff')
m.fillcontinents(color='#cc9966',lake_color='#99ffff')
m.scatter([-73.98, 238., 0.08, 0., 116.38],[40.78,47.6, 51.53,0., 39.91],
latlon=True, # Ta-da!
marker='o',color='k',
zorder=10)
plt.title('Hammer projection, data on top',fontsize=12)
plt.show()
这是伟大的,谢谢!我已经使用* x,y = m(lons,lats)*设置了latlon数据。我缺少的是* zorder = 10 *。虽然,很高兴知道我可以在scatter中使用* latlon = True *。 – WillaB
我很幸运,因为我选择了一个海滨城市作为测试用例,我可以看到* *一半的标记 - 很明显这是大陆下,但不是海洋。 – cphlewis