ニュージーランドのプロットを作成したいと思います。しかし、私が画像を生成するために使用したシェイプファイルは、土地の端を越えて海に広がっています。つまり、ポリゴンに色付けすると、海の色付け部分も終わることになります。希望の応答ではありません!Matplotlib Basemapのmaskoceans()をポリゴンパッチに適用する方法
私が使用していたコードは次のようになります。下の画像を生成
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
plt.figure(figsize=(15,15))
lonmax = 180
lonmin = 165
latmax = -33
latmin = -48
map = Basemap(llcrnrlon=lonmin,llcrnrlat=latmin,urcrnrlon=lonmax,urcrnrlat=latmax, resolution = 'i')
map.drawmapboundary(fill_color='white')
map.fillcontinents(color='white',lake_color='white')
map.drawcoastlines()
map.readshapefile('../data/raw/statsnzregional-council-2016-generalised-version-SHP/regional-council-2016-generalised-version', 'regional_council')
ax = plt.gca() # get current axes instance
cm = matplotlib.cm.get_cmap('viridis')
norm = matplotlib.colors.Normalize(vmin=0.05, vmax=0.35)
for info, shape in zip(map.regional_council_info, map.regional_council):
poly = Polygon(shape, facecolor=cm(norm(region_percent[info['REGC2016_N']])),edgecolor='k')
ax.add_patch(poly)
plt.show()
。このイメージは私が欲しいものに非常に近いですが、私は海の色を塗るのではなく、陸の境界線で止まるように色付けしたいと思います。
私はBasemapのmaskoceans()を調べましたが、これはおそらくこれを解決する最善の方法だと思いますが、自分の状況にそれを適用する方法がわかりません(例:緯度、
また、ニュージーランドの地図境界を硬い境界にする方法があります。そのため、ポリゴンパッチと内部の重なり部分だけが印刷されますか?