この記事では、Python Plotlyを使って地理的なデータを地図上にプロットする方法を学びます。
このデモでは、ourworldindata.orgのデータセットからCOVID-19の症例をプロットします。
Python で地図上に地理的なデータをプロットする手順
さっそく始めてみましょう。
1. 必要なライブラリのインポート
まずは、必要なライブラリのインポートから始めましょう。
以下の2つのライブラリをインポートする必要があります。
-
- Pandas
- Plotly.express
import pandas as pd
import plotly.express as px
|
それでは次のステップ、データセットのダウンロードに移ります。
2. データセットのダウンロードと読み込み
データセットをダウンロードし、読み込むには、次のようなコードを使用します。
!wget https: / / covid.ourworldindata.org / data / owid - covid - data.csv
|
結果は以下の通りです。
df = pd.read_csv( 'owid-covid-data.csv' )
df.head() |
Pythonでpandas read_csvメソッドを使ってCSVデータセットを読み込む。
出力 :
fig = px.choropleth(df, locations = "iso_code" ,
color = "new_cases" ,
hover_name = "location" ,
animation_frame = "date" ,
title = "Covid Cases plotted using Plotly" , color_continuous_scale = px.colors.sequential.PuRd)
fig[ "layout" ].pop( "updatemenus" )
fig.show() |
import pandas as pd
import plotly.express as px
#download dataset !wget https: / / covid.ourworldindata.org / data / owid - covid - data.csv
#import dataset df = pd.read_csv( 'owid-covid-data.csv' )
#plot fig = px.choropleth(df, locations = "iso_code" ,
color = "new_cases" ,
hover_name = "location" ,
animation_frame = "date" ,
title = "Covid Cases plotted using Plotly" , color_continuous_scale = px.colors.sequential.PuRd)
fig[ "layout" ].pop( "updatemenus" )
fig.show() |
3. COVID-19 データセットを地図上にプロットする
さて、Plotly を使って上のデータセットからデータをプロットしてみましょう。
ここでは、Choropleth Map をプロットします。
これは、あらかじめ定義された領域内の濃淡の違い、色の違い、記号の配置を利用して、それらの領域における特定の量の平均値を示す地図です。
私たちは、毎日の新しい症例数をプロットするつもりです。
Plotlyではアニメーションでそれを行うことができます。
以下は、地図上に色と陰影をプロットするコードです。
import pandas as pd
import plotly.express as px
#download dataset !wget https: / / covid.ourworldindata.org / data / owid - covid - data.csv
#import dataset df = pd.read_csv( 'owid-covid-data.csv' )
#select entries with the continent as asia df = df[df.continent = = 'Asia' ]
#plot fig = px.choropleth(df, locations = "iso_code" ,
color = "new_cases" ,
hover_name = "location" ,
animation_frame = "date" ,
title = "Daily new COVID cases" ,
scope = 'asia' , color_continuous_scale = px.colors.sequential.PuRd)
fig[ "layout" ].pop( "updatemenus" )
fig.show() |
結果は以下の通りです。
出力は、1年のうち3つの異なる月に地図がどのように見えるかを示している。
2月には中国で、4月にはアメリカで、9月にはインドで、ウイルスが急速に広まっていることが分かります。
また、地図上の任意の地域にカーソルを合わせると、新規感染者数を表示することができます。
Plotlyのアニメーションは、時系列データを可視化するのに便利です。
4. Python Plotly を使って地理データをプロットする完全なコード
このセクションの完全なコードは、以下のとおりです。
6. COVID-19 アジアのデータをプロットする
地図の範囲をアジアに設定することもできます。
ここでは、アジアというコンテンツの地理データをプロットする方法を説明します。
プロットの範囲をアジアに設定するには、パラメータ ‘scope’ を ‘asia’ に設定します。
結果は以下の通りです。
アジアのCovid症例このビデオはCOVID-19の各日の新しい症例をアニメーションで表示しています。
まとめ
このチュートリアルは、Python Plotlyで地理的なデータをプロットするものでした。
Python の Plotly を使って Covid-19 データセットからデータをプロットしました。
Plotlyで作成できる他の種類の地図については、彼らの公式ドキュメントを読んでください。