我正在尝试在“锤子”上绘制数据集。使用散点图的底图。但是,数据点不会在各大洲之上绘制。我注意到在matplotlib example中,大陆上也没有数据(我认为这是由于示例的性质)。我想知道我是否做错了什么,或者是否使用'锤子'无法在大陆上绘制数据?按设计。
如果是这种情况,是否有一个理想的底图用于在整个地球上绘制散点图数据(使用浮雕图会很棒,但此时我会满足于什么)?
答案 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()