Python mpl_工具包底图散点图错误

Python mpl_工具包底图散点图错误,python,matplotlib,gis,matplotlib-basemap,Python,Matplotlib,Gis,Matplotlib Basemap,我使用mpl_工具箱.basemap.basemap()函数成功地绘制了一个多边形。之后,我尝试将一些(x,y)点作为散点图添加到底图上。它会给出一条Deprecationwarning消息,并且不会绘制散布点(即使之前的shapefile仍然被绘制)。以下是代码块(请理解已加载必要的库): 弃用警告消息为: /home/serenewiz/miniconda3/envs/onering/lib/python3.5/site-packages/mpl_toolkits/basemap/__ini

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

弃用警告消息为:

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

在这里发布之前,我参考了以下链接,但仍然无法解决问题:
这里有两个问题:

  • 有贬值警告
  • 积分不会显示出来
  • 这两个问题完全无关。

    1.折旧警告 折旧警告不是错误。它只是告诉我们某些命令或函数不应该(再)使用。在这种情况下,已折旧的命令是 basemap在内部使用的matplotlib命令。所以它实际上不在我们的控制之下,而是驻留在basemap代码中。此命令(
    ax.hold
    )自matplotlib 2.x版起已被降级。 所以我们对此无能为力,直到有一个新版本的basemap出来,不再使用它。从照片上看,至少有人在做这件事。
    但是,由于这不是一个错误,到目前为止,唯一的缺点是恼人的警告消息。basemap的功能丝毫没有退化

    2.在绘图上显示点 要在底图绘图上绘制点,需要使用底图实例转换坐标。也就是说,在底图上绘制点
    lon=80
    lat=34
    ,它们需要使用
    x,y=m([lon],[lat])
    进行转换,然后才能使用
    m.plot(x,y,marker=“o”)
    进行绘制。请注意,为了绘制点,需要将
    标记
    参数提供给
    绘图

    这是一个完整的例子

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

    谢谢@重要的是,你的解释帮助很大。你提出的解决方案非常有效。
    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()