前提
・foliumをある程度使える
本文
位置情報を持つデータをscatter plotすると、いちおう、それっぽいものになるかと思いますが、地図との重ね合わせができないと思います。Geopandasなど、利用しようとしても、ベースになる地図データの用意が難しかったりすると思います。
そこで、foliumのcircle markerの色を指定することで、地図上に、scatter plotっぽい表示をすることとしました。
そうなると、foliumのcircle markerの色は、16進のカラーコードで指定する必要があるので、データをカラーコードに変換する必要があります。
順序は、
データを0~1に正規化→0~1をRGBカラーコードに変換→変換されたカラーコードを16進に変換、
となります。
データの正規化は、
import matplotlib.colors as cl
norm = cl.Normalize(vmin='最小値', vmax='最大値'])
norm('値を代入')
で行います。
正規化された値のRGBへの変換は、たとえば
import matplotlib.pyplot as plt
henkan = plt.get_cmap('magma')
henkan('0~1の値')
で行います。
16進への変換は、cl.to_hex()
で行います。
あとは、for文でデータ数分だけ、foliumのcircle markerをプロットすればOKです。
cl.to_hex(henkan(norm(data)))という感じです。