底图上的不同绘图大小

时间:2015-06-10 11:35:34

标签: python matplotlib matplotlib-basemap

我目前正在使用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(lon, lat,'ro',markersize=size)

plt.show()

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您正在转发列表,而不是转发标记大小的值。 size = [2,35],尝试大小[0]