[英]Geopandas world map in Polar Stereographic projection with coloured oceans
向這個問題添加進一步的要求,我還需要將海洋設為藍色(或任何其他顏色)。
對於“PlateCarree”投影,我可以簡單地做到這一點
crs = ccrs.PlateCarree()
crs_proj4 = crs.proj4_init
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
w = world.to_crs(crs_proj4)
g = w.plot(facecolor='sandybrown', edgecolor='black')
現在添加海洋顏色
g.set_facecolor('#A8C5DD')
如果我現在想使用極坐標立體投影
ccrs.NorthPolarStereo()
或者
ccrs.SouthPolarStereo()
投影不起作用。 在回答這個問題時,我無法將海洋染上顏色
您需要在 Cartopy geoaxes
上繪制地圖幾何圖形,並使用cartopy.feature.OCEAN
繪制海洋。 這是您可以嘗試的工作代碼。 閱讀代碼中的注釋以進行澄清。
import geopandas as gpd
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import cartopy
facecolor = 'sandybrown'
edgecolor = 'black'
ocean_color = '#A8C5DD'
#crs1 = ccrs.SouthPolarStereo()
crs1 = ccrs.NorthPolarStereo()
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
w1 = world.to_crs(crs1.proj4_init)
fig1, ax1 = plt.subplots(figsize=(7,7), subplot_kw={'projection': crs1})
# useful code to set map extent,
# --- if you want maximum extent, comment out the next line of code ---
ax1.set_extent([-60.14, 130.4, -13.12, -24.59], crs=ccrs.PlateCarree())
# at maximum extent, the circular bound trims map features nicely
ax1.add_geometries(w1['geometry'], crs=crs1, \
facecolor=facecolor, \
edgecolor=edgecolor, \
linewidth=0.5)
# this adds the ocean coloring
ax1.add_feature(cartopy.feature.OCEAN, facecolor=ocean_color, edgecolor='none')
plt.show()
輸出圖將是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.