我无法强制使用matplolib底图和箭袋的过度绘图的zorder。
这就是我正在做的事情(Mac OsX,python 3.6)
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
latmin = -33.496886
latmax = -33.388023
lonmin = -70.692902
lonmax = -70.515747
map_s = Basemap(projection = 'merc', epsg=4326, llcrnrlat=latmin, urcrnrlat=latmax,
llcrnrlon=lonmin, urcrnrlon=lonmax, lat_ts=20, resolution='i')
map_s.arcgisimage(service='ESRI_Imagery_World_2D',
xpixels=200, verbose=True)
x, y, u, v = -70.564464625, -52.011810175, -0.2569774, -0.1781287
lon, lat = map_s(float(x), float(y))
map_s.quiver(lon, lat, float(u), float(v), width=0.005, scale_units='xy',
scale=1, color='r', zorder=100)
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.show()
当我这样做时,卫星图像在红色矢量上方,而我希望看到相反的情况,在卫星图像顶部有红色矢量。
我也尝试过(ex1)
plt.quiver(lon, lat, float(u), float(v), width=0.005, scale_units='xy',
scale=1, color='r', zorder=100)
而不是(ex2)
map_s.quiver(lon, lat, float(u), float(v), width=0.005, scale_units='xy',
scale=1, color='r', zorder=100)
但结果是一样的。我错过了什么,我做错了什么?
(小问题:当我删除部分时
map_s.arcgisimage(service='ESRI_Imagery_World_2D',
xpixels=200, verbose=True)
我可以看到矢量(ex1)但不能(ex2)。应该是这样吗)
非常感谢!
答案 0 :(得分:0)
箭头箭头的绘图位置超出范围,其大小太大。 Zorder不相关,默认值很好。 以下是调整箭头位置和大小以在图像限制内绘制的代码。
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
latmin = -33.496886
latmax = -33.388023
lonmin = -70.692902
lonmax = -70.515747
map_s = Basemap(projection = 'merc', epsg=4326, llcrnrlat=latmin, urcrnrlat=latmax,
llcrnrlon=lonmin, urcrnrlon=lonmax, lat_ts=20, resolution='i')
map_s.arcgisimage(service='ESRI_Imagery_World_2D',
xpixels=200, verbose=True)
# Out of limits x,y,u,v=-70.5644,-52.0118,-0.2569,-0.1781
x, y, u, v = -70.55, -33.4, -0.05, -0.05
lon, lat = map_s(float(x), float(y))
map_s.quiver(lon, lat, float(u), float(v), width=0.005, scale_units='xy',
scale=1, color='r')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.show()
您必须决定调整哪个,图像限制或箭袋。