在 Cartopy 中更改地图边界颜色
Change map boundary color in Cartopy
我正在 Cartopy 中绘制世界地图,作为过程的一部分,我想将所有线条涂成白色。除了地图的边界之外,我已经能够对每个元素执行此操作。这是我正在使用的代码:
import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
import cartopy.crs as ccrs
fig = plt.Figure()
fig.set_canvas(plt.gcf().canvas)
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cartopy.feature.LAND, linewidth=0.5, edgecolor='white')
ax.set_extent([-150,60,-25,60])
shpf = shpreader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries')
reader = shpreader.Reader(shpf)
countries = reader.records()
for country in countries:
ax.add_geometries(country.geometry, ccrs.PlateCarree(), facecolor=(0,1,0), linewidth=0.5, edgecolor='white', label=country.attributes['adm0_a3'])
fig.savefig("final_image.png", format='png', dpi=200)
这是最终结果:
知道如何以尽可能少的步骤将边界线更改为白色或将其完全关闭吗?
谢谢!
可以使用以下行将边框设为白色:
ax.outline_patch.set_edgecolor('white')
顺便说一句,plt.axes
接受布尔关键字参数 frameon
,当设置为 False
时,它会阻止绘制边框。但是,它似乎被 Cartopy 忽略了。这是一个应该调查的潜在错误。
我正在 Cartopy 中绘制世界地图,作为过程的一部分,我想将所有线条涂成白色。除了地图的边界之外,我已经能够对每个元素执行此操作。这是我正在使用的代码:
import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
import cartopy.crs as ccrs
fig = plt.Figure()
fig.set_canvas(plt.gcf().canvas)
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cartopy.feature.LAND, linewidth=0.5, edgecolor='white')
ax.set_extent([-150,60,-25,60])
shpf = shpreader.natural_earth(resolution='110m', category='cultural', name='admin_0_countries')
reader = shpreader.Reader(shpf)
countries = reader.records()
for country in countries:
ax.add_geometries(country.geometry, ccrs.PlateCarree(), facecolor=(0,1,0), linewidth=0.5, edgecolor='white', label=country.attributes['adm0_a3'])
fig.savefig("final_image.png", format='png', dpi=200)
这是最终结果:
知道如何以尽可能少的步骤将边界线更改为白色或将其完全关闭吗?
谢谢!
可以使用以下行将边框设为白色:
ax.outline_patch.set_edgecolor('white')
顺便说一句,plt.axes
接受布尔关键字参数 frameon
,当设置为 False
时,它会阻止绘制边框。但是,它似乎被 Cartopy 忽略了。这是一个应该调查的潜在错误。