我目前正在使用底图来绘制一些数据。我希望markersize由列表定义,但这会引发错误。

知道如何通过单个函数或方法调用显示不同大小的标记吗?

m = Basemap(projection='mill',llcrnrlat=51.25,urcrnrlat=51.75,
            llcrnrlon=-0.5,urcrnrlon=0.3,resolution='h')
m.drawcoastlines()
m.drawrivers(color='blue')
m.fillcontinents()
m.drawmapboundary()
m.drawcounties()

lat,lon,size = [51.5, 51.4], [0.1, 0], [2, 35]
x, y = m(lon,lat)
m.plot(lon, lat,'ro',markersize=size)

plt.show()

最佳答案

Basemap.plt不支持多个标记大小。请使用Basemap.scatter及其大小参数。
如果要同时保留线条和标记,则必须将plotscatter结合使用:

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

m = Basemap(projection='mill',llcrnrlat=51.25,urcrnrlat=51.75,
        llcrnrlon=-0.5,urcrnrlon=0.3,resolution='h')
m.drawcoastlines()
m.drawrivers(color='blue')
m.fillcontinents()
m.drawmapboundary()
m.drawcounties()

lat,lon,size = [51.5,51.4],[0.1,0],[2,35]
x,y = m(lon,lat)
m.plot(x, y, c='r')
m.scatter(x, y, s=size, c='r', marker='o', zorder=2)

plt.show()

关于python - basemap 上的不同地块大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30755121/

10-12 22:49