
まくまく
プラグラミング言語「PYTHON」を使ってみよう!!業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。
今回の内容
- Pandasでcsvファイルを読み込み
- plotlyとMapboxを使って新型コロナ感染者数をサイズ別に表示
使用するのはPlotly
使用するライブラリは、見た目のよいイマドキのグラフが作成できるPlotly。エクセルでは作れない高度なグラフも作成できるおすすめのライブラリです。
ここではPlotlyがインストールされているのを前提として書き進めていきます。
サンプルコード
import pandas as pd
import plotly.express as px
px.set_mapbox_access_token("トークン")
df = pd.read_csv('covid19-a.csv',header=1)
fig = px.scatter_mapbox(df,lat="lat", lon="lon",size="pop",color="pop",size_max=80,zoom=3, height=500)
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})
fig.show()
コメント
- 「トークン」の箇所には取得したmapboxのトークンを入力
- 「pd.read_csv〜」で、dfを読み込み。ヘッダーを指定しておく(下記元データ参照)
- 「fig = px.scatter_mapbox〜」で地図上にプロット
- 「size_max,zoom,height」などは任意の値を入力
元データはこちら。
「lat」はlatitude(緯度)、「lon」はlongitude(経度)です。
A1はタイトルなのでデータフレームから除外しないといけません。このため「header=1」の記載が必要。
df = pd.read_csv(‘covid19-a.csv’,header=1)
※本データはジョンポプキンス大学が発表している数値を使用
出力
こういうのって座標(経度緯度)の設定に迷いますよね。日本であれば東京の座標を設定すればいいですけど、中国で北京を設定すると少しイメージと違ったプロットになります(北京の位置が中国の北部にあるため)。中国はとりあえず武漢の座標を入力したのですけど。。。
その国の中心地あたりの座標を設定するといい感じに見えますが、いちいち手動で入力しなければなりません。。。うーーーーんっ、、、悩みますね。
↑Plotlyを使うならこれ!!Plotly&Dashが学べます!
↑データの前処理はPandasで。