无法使用底图和箭袋强制 zorder
Cannot force zorder with basemap and quiver
我无法使用 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) 时,我可以看到矢量。应该是吧)
非常感谢!
你的箭袋箭头剧情位置越界,尺寸太大。
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()
您必须决定要调整的是图像限制还是箭袋。
我无法使用 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) 时,我可以看到矢量。应该是吧)
非常感谢!
你的箭袋箭头剧情位置越界,尺寸太大。 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()
您必须决定要调整的是图像限制还是箭袋。