gpt4 book ai didi

python - mpl_toolkits basemap 散点图错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:55:50 25 4
gpt4 key购买 nike

我使用 mpl_toolkits.basemap.Basemap() 函数成功绘制了一个多边形。之后,我尝试将一些 (x,y) 点作为散点图添加到 basemap 上。它给出了一个 Deprecationwarning 消息,并且不绘制散点(即使仍然绘制了早期的 shapefile)。以下是代码块(请理解已经加载了必要的库):

fname = "../DATA/GIS/IL_State_ln"
m = Basemap(llcrnrlon=-92.,llcrnrlat=36.8,urcrnrlon=-86.5,urcrnrlat=43.,
resolution='i', projection='tmerc', lat_0 = 36.5, lon_0 = -91.8)
m.readshapefile(fname, 'mygeom')

x = [-90., -91.2, -88.]
y = [38., 37.7, 42.]
m.plot(x,y)

plt.show()

弃用警告消息是:

/home/serenewiz/miniconda3/envs/onering/lib/python3.5/site-packages/mpl_toolkits/basemap/__init__.py:3260: MatplotlibDeprecationWarning: The ishold function was deprecated in version 2.0.
b = ax.ishold()
/home/serenewiz/miniconda3/envs/onering/lib/python3.5/site-packages/mpl_toolkits/basemap/__init__.py:3269: MatplotlibDeprecationWarning: axes.hold is deprecated.
See the API Changes document (http://matplotlib.org/api/api_changes.html)
for more details.
ax.hold(b)

仅供引用,版本为:Python(3.5)、matplotlib (2.0.0) 和 basemap(1.0.7)。

我在发帖之前引用了下面的链接,但还是没能解决问题: https://github.com/matplotlib/matplotlib/issues/7808

最佳答案

这里有两个问题:

  1. 有贬值预警
  2. 积分不会显示。

这两个问题完全不相关。

1。贬值预警

折旧警告不是错误。它只是告诉我们一些命令或函数不应该被使用(不再)。在这种情况下,折旧的命令是 basemap 在内部使用的来自 matplotlib 的命令。所以它实际上不在我们的控制之下,而是驻留在 basemap 代码中。从 matplotlib 版本 2.x 开始,此命令 (ax.hold) 已被弃用。所以我们对此无能为力,直到有一个新版本的 basemap 出来,它不会再使用它了。从 this issue 可以看出至少似乎有人在处理它。
但这不是错误,目前唯一的缺点是烦人的警告消息。 basemap 的功能丝毫没有变差。

2。在图上显示点

要在 basemap 上绘制点,需要使用 Basemap 实例转换坐标。 IE。在 basemap m = Basemap(...) 上绘制点 lon = 80, lat=34,它们需要使用x,y = m([lon],[lat]) 在用 m.plot(x,y, marker="o") 绘制之前。请注意,为了绘制点,您需要为 plot 提供 marker 参数。

这是一个完整的例子。

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

m = Basemap(llcrnrlon=-92.,llcrnrlat=36.8,urcrnrlon=-86.5,urcrnrlat=43.,
resolution='i', projection='tmerc', lat_0 = 36.5, lon_0 = -91.8)

m.drawcoastlines()
m.drawcounties(zorder=0, color='gray')

x,y = m([-90., -91.2, -88.],[38., 37.7, 42.])

m.plot(x,y, marker="o")

plt.show()

enter image description here

关于python - mpl_toolkits basemap 散点图错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com