2016-12-06 3 views
0

Bien qu'il n'y ait rien derrière l'image de fond de carte, je veux ajuster sa transparence pour la rendre moins prononcée - fondamentalement pour l'atténuer. J'ai essayé d'insérer alpha=0.5 dans plusieurs endroits dans mon code mais il n'a aucun effet ou ne fonctionne pas.Comment ajuster la transparence d'une image de fond de carte (matplotlib)?

J'ai essayé de placer le alpha=0.5 dans les fichiers plt.figure(), Basemap() et map.arcgisimage(). Existe-t-il un autre moyen de faire apparaître l'imagerie ESRI comme une version fanée ou moins opaque de lui-même?

geomap = plt.figure(figsize=(10,9)) 
ax1 = plt.axes([0.075, 0.01, 0.875, 0.975]) 
map = Basemap(llcrnrlon=self.LLcrnrlon ,llcrnrlat=self.LLcrnrlat,urcrnrlon=self.URcrnrlon, 
urcrnrlat=self.URcrnrlat, epsg=4269, projection='tmerc',lat_0 = self.center[0], 
lon_0 = self.center[1]) 
map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels = 2500,dpi=150, 
    verbose= True, alpha=0.9) 
parallels = np.arange(round(self.LLcrnrlat,1),round(self.URcrnrlat,1),0.2) 
map.drawparallels(parallels,labels=[True, False, False, False],linewidth=0) 
meridians = np.arange(round(self.LLcrnrlon,1),round(self.URcrnrlon,1),0.2) 
map.drawmeridians(meridians,labels=[False, False, False, True],linewidth=0) 
+0

J'ai pas idéo mais si à propos Basemap tout le reste échoue, vous pouvez placer un blanc semi-transparent [ 'matplotlib.patches.Rectangle'] (http://matplotlib.org/api/patches_api.html#matplotlib. patches.Rectangle) sur toute la zone de l'axe pour obtenir le même effet. – ImportanceOfBeingErnest

Répondre

0

Vous devez utiliser .set_alpha() sur l'image.

# etc. 
img = map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels=2500, dpi=150, verbose= True) 
img.set_alpha(0.2) 
# etc. 
plt.show()