【发布时间】:2019-05-24 22:00:38
【问题描述】:
在 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。
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
# lon_0 is central longitude of projection.
# resolution = 'c' means use crude resolution coastlines.
m = Basemap(projection='robin',lon_0=180,resolution='c')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
# draw parallels and meridians.
m.drawparallels(np.arange(-90.,120.,30.))
m.drawmeridians(np.arange(0.,360.,60.))
m.drawmapboundary(fill_color='aqua')
plt.title("Robinson Projection")
plt.show()
当我运行代码时,唯一的输出是这个,看起来不相关:
map_test.py:36: MatplotlibDeprecationWarning: dedent 函数在 Matplotlib 3.1 中已弃用,并将在 3.3 中删除。请改用inspect.cleandoc。 m = 底图(projection='robin',lon_0=180,resolution='c')
有什么想法吗?
【问题讨论】:
标签: python matplotlib maps matplotlib-basemap