在python中,我使用底图(https://matplotlib.org/basemap/)来绘制空间数据,并且已经使用了几年,没有任何大问题。我最近不得不重新安装python3(通过conda以及许多模块),现在底图出现了一个奇怪的问题:在某些情况下,地图将以经度翻转,向东和向西切换的方式显示。例如,我使用以下代码:https://matplotlib.org/basemap/users/robin.html。如果我按原样使用该代码,则地图将显示正常,但是当我设置lon_0 = 180时,地图将被翻转,如下图所示。
将lon_0设置为任何正数会导致地图翻转,而将0或负数会导致正确的地图。 lon_0应该只设置绘制地图的中心经度,并且不应该有这种行为,所以我不确定发生了什么。有没有人以前见过这种行为,或者对如何解决它有建议?我可以更改代码以解决该问题,但我希望一切正常。
我正在使用python3.7.3。我已经尝试使用命令“ conda install -c anaconda basemap”更新底图,但是它告诉我底图已经是最新的。
这是代码。它与上面链接的代码相同,但是lon_0设置为180。
@connect((state) => state, () => {})
运行代码时,唯一的输出是以下内容,这似乎无关:
map_test.py:36:MatplotlibDeprecation警告: dedent函数在Matplotlib 3.1中已弃用,在3.3中将被删除。请改用inspect.cleandoc。 m =底图(projection ='robin',lon_0 = 180,resolution ='c')
有什么想法吗?
答案 0 :(得分:1)
这应该可以解决问题。只需在创建轴后添加以下内容即可:
m = Basemap('robin', lon_0=-180)
经过反复试验,似乎还选择了负中心经度而不是正经度:
{{1}}