GeoPandasでコロプレスマップを表示
基本的な動作を確認したら、コロプレスマップを作ってみます。 naturalearth_lowresには大陸以外に人口とGDPデータがあるので、それらを色で段階的に分けて表示します。
人口マップ
#!/usr/bin/env python # -*- coding: utf-8 -*- import geopandas as gpd import matplotlib.pyplot as plt #日本語を表示するため import japanize_matplotlib fn = gpd.datasets.get_path('naturalearth_lowres') gdf = gpd.read_file(fn) # 人口データをint型にします gdf['population'] = gdf['pop_est'].astype("int") # 人口の多い順にソートします gdf = gdf.sort_values("pop_est", ascending=False) gdf = gdf.drop("pop_est", axis=1) print(gdf.head(10))
continent name iso_a3 gdp_md_est population
139 Asia China CHN 14342903 1397715000
98 Asia India IND 2868929 1366417754
4 North America United States of America USA 21433226 328239523
8 Asia Indonesia IDN 1119190 270625568
102 Asia Pakistan PAK 278221 216565318
29 South America Brazil BRA 1839758 211049527
56 Africa Nigeria NGA 448120 200963599
99 Asia Bangladesh BGD 302571 163046161
18 Europe Russia RUS 1699876 144373535
27 North America Mexico MEX 1268870 127575529
人口を分かりやすく表示しています。
それらのデータをプロットすることで人口のコロプレスマップが出来ます。
gdf.plot(column='population', cmap="jet", legend=True, figsize=(16, 8)) plt.title("人口マップ") plt.show()中国、インドの人口が多いのがひと目で理解できます。
各国のGDPマップ
#!/usr/bin/env python # -*- coding: utf-8 -*- import geopandas as gpd import matplotlib.pyplot as plt import japanize_matplotlib fn = gpd.datasets.get_path('naturalearth_lowres') gdf = gpd.read_file(fn) gdf = gdf.rename(columns={"gdp_md_est": "gdp_md"}) # GDPの多い順に並べます gdf = gdf.sort_values("gdp_md", ascending=False) print(gdf.head(10)) gdf.plot(column='gdp_md', cmap="jet", legend=True, figsize=(16, 8)) plt.title("GDP") plt.show()各国のGDPのコロプレスマップを表示出来ました。
0 件のコメント:
コメントを投稿