LoginSignup
2
5

More than 3 years have passed since last update.

[Python] Foliumのコロプレス図(Choropleth)でデータがないと黒くなる箇所を白くする

Last updated at Posted at 2021-01-10

How to make black colored area in Folium Choropleth white where data is missing; simply set the nan_fill_color

この記事について

現在、Foliumのコロプレス図(Choropleth)を勉強中ですが、ネットに掲載されているものはきちんと動かないものが多く、苦労しています。そんな中、こちらのサイトのものはきちんと動作して、非常に参考になりました。

Pythonでビックマック指数のヒートマップ世界地図を作ってみる
https://techray.hatenablog.com/entry/2019/12/16/200248

しかし、表示される地図で、ビックマック指数がないところ(マクドナルドの店舗がないところ?!)は黒くなり、ちょっと見ずらいです。(厳密にはダークグレーですが、黒として進めます)

BEFORE (こんな感じ)
before.png

AFTER ちょっと、黒を白くしてみました!

after.png

こうしてみると、一番、ビッグマックが高いのはスイスであることが分かりやすかと思います。

何を変えたか

元のサイトに掲載されるデータはそちらで見ていただきたいのですが、以下、nan_fill_colorという箇所を1行追加しました。


# 地図に色を塗る
folium.Choropleth(
geo_data=geojson,
name='choropleth',
data=df,# 描画データ
columns=['iso_a3', 'dollar_price'], # ["国コード", "値の列"]
key_on='feature.id',
fill_color='OrRd',# 色指定
fill_opacity=0.7, # 色の透明度
line_opacity=1,#国境線の透明度
nan_fill_color="white",  ####  ここでdfにない国は白にする!!! #####
legend_name='big mac index dollar_price' #凡例
).add_to(m)

これはFoliumのdocumentationに記載されていましたが、あまり知られていないようです。
https://python-visualization.github.io/folium/modules.html

nan_fill_color (string, default 'black') – Area fill color for nan or missing values. Can pass a hex code, color name.

値のないものはNaN扱いとなり、その色を指定できるようです。
色を指示する他にも透明度を変えることもできるそうです。

その他

こちらのコロプレス図のデータは、けっこう粗かった。日本はこんな感じ。。
スクリーンショット 2021-01-11 084242.png
結局、境界線をポイントでつないでポリゴンで表現していることが分かりやすい。

2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5