7

cartopy と matplotlib を使用して、アプリのユーザー数の地理的ヒートマップを作成しましたが、カラーバーの凡例を追加するのに問題があります。

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

cmap = mpl.cm.Blues
# Countries is a dictionary of {"country_name": number of users}, for example
countries = {"United States": 100, "Canada": 50, "China": 10}

max_users = float(max(countries.values()))
shapename = 'admin_0_countries'
countries_shp = shpreader.natural_earth(resolution='110m', category='cultural', name=shapename)
ax = plt.axes(projection=ccrs.Robinson())
for country in shpreader.Reader(countries_shp).records():
    name = country.attributes['name_long']
    num_users = countries[name]
    ax.add_geometries(country.geometry, ccrs.PlateCarree(),
                facecolor=cmap(num_users/max_users, 1))

plt.savefig('iOS_heatmap.png', transparent=True, dpi=900)

生産する ここに画像の説明を入力

カラーバーの凡例を追加したい。単純なmatplotlibプロットのためにそうするためのドキュメントがありますが、軸がGeoAxesSubplot. 凡例を追加する助けをいただければ幸いです。

また、この種の地理的ヒートマップに最適なライブラリについてのヒントもいただければ幸いです。次に米国のユーザーのヒートマップを作成する必要がありますが、cartopy は最適な選択肢ではないようです。ありがとう!

4

1 に答える 1