散点图数据不会出现在大陆的“锤子”中。底图

时间:2015-04-12 14:12:43

标签: python matplotlib scatter matplotlib-basemap

我正在尝试在“锤子”上绘制数据集。使用散点图的底图。但是,数据点不会在各大洲之上绘制。我注意到在matplotlib example中,大陆上也没有数据(我认为这是由于示例的性质)。我想知道我是否做错了什么,或者是否使用'锤子'无法在大陆上绘制数据?按设计。

如果是这种情况,是否有一个理想的底图用于在整个地球上绘制散点图数据(使用浮雕图会很棒,但此时我会满足于什么)?

1 个答案:

答案 0 :(得分:8)

你可能错过了解释lat-lon数据的关键字。来自Basemap.scatter的帮助:

  

如果latlon关键字设置为True,则x,y表示为经度   和纬度(度)。数据和经度是自动的   移动以匹配圆柱形和圆柱形的地图投影区域   伪圆柱投影,x,y转换为映射   投影坐标。如果latlon为False(默认值),则x和y为   假设是地图投影坐标。

我还需要增加z次序,以便在大陆和海洋之上散布。

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()

enter image description here