파이썬 세계지도-26(각국의 현경, 시정촌경 표시)

9235 단어 BasemapPythoncartopy

국경선


https://gadm.org/download_country_v3.html
Country 를 선택합니다.
Shapefile 을 클릭합니다.
기본적 상황
#!/usr/bin/python3
# coding: UTF-8

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

font = {'family':'IPAGothic'} #日本語Fontを指定

#fname = 'gadm36_JPN_shp/gadm36_JPN_0' #国境線のみ
fname1 = 'gadm36_JPN_shp/gadm36_JPN_1' #県境
fname2 = 'gadm36_JPN_shp/gadm36_JPN_2' #市町村境

lon1 = 137.50 #japanの場合
lat1 = 34.5
lon2 = 12.5
lat2 = 12.5

map = Basemap(llcrnrlon=lon1-lon2,llcrnrlat=lat1-lat2,urcrnrlon=lon1+lon2,urcrnrlat=lat1+lat2,resolution='h',projection='cyl', area_thresh = 100.0)

map.drawcoastlines() #海岸線が重複する。他国の国境線・海岸線が必要な時は先頭の#を削除する。resolution='h'にする。(非常に時間がかかる)

#map.drawcountries() #国境線
#map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='cyan')

map.readshapefile(fname2, 'prefectural_bound2', color='gray', linewidth=.5) #市町村境
map.readshapefile(fname1, 'prefectural_bound1', color='black', linewidth=.8) #県境

plt.title('日本', **font,fontsize=15)

plt.show()

cartopy의 경우
#!/usr/bin/python3
# coding: UTF-8

import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import matplotlib.pyplot as plt

font = {'family':'IPAGothic'} #日本語Fontを指定

#fname = 'gadm36_JPN_shp/gadm36_JPN_0.shp' #国境線のみ
fname1 = 'gadm36_JPN_shp/gadm36_JPN_1.shp' #県境
fname2 = 'gadm36_JPN_shp/gadm36_JPN_2.shp' #市町村境

adm1_shapes = list(shpreader.Reader(fname1).geometries())
adm2_shapes = list(shpreader.Reader(fname2).geometries())

ax = plt.axes(projection=ccrs.PlateCarree())

plt.title('日本', **font)
#ax.coastlines(resolution='10m') #海岸線が重複する。他国の海岸線が必要な時は先頭の#を削除する。

ax.add_geometries(adm2_shapes, ccrs.PlateCarree(),
                  edgecolor='gray', facecolor='cyan',  alpha=0.5) #市町村境
ax.add_geometries(adm1_shapes, ccrs.PlateCarree(),
                  edgecolor='black',alpha=0.5) #県境

ax.set_extent([125, 150, 22, 47], ccrs.PlateCarree()) #[lon1,lon2,lat1,lat2] #japanの場合

plt.show()

좋은 웹페이지 즐겨찾기