カテゴリー

plotly

【plotly&layout.geo】projectionのtype一覧(名称先頭がe~g編)

2021年9月27日

こんな人にオススメ

plotlygo.Layoutの引数になるgeoprojectionっていう引数があって、これでマップの図法を変更できる。けど、どんな図法があるの?

ということで、今回はplotlygo.Layoutの引数となるgeolayout.geo)の引数projectionで選択可能な図法を全てマップ化してみる。

図法の総数は脅威の83ということで恐ろしいことありゃしない。そもそもgeoを使用する人がそこまでいるかわからんけど、一覧がないから作ってみる。

ただし、83全てをこの記事に載せると記事が激重になるので、以下の4つのアルファベットに分けて記事を書くことにする。基準は先頭の文字。

  • aからd
  • eからg
  • hからn
  • oからz

今回は先頭文字がeからgの図法を描いてみる。その他の図法は以下。

【plotly&layout.geo】projectionのtype一覧(名称先頭がa~d編)

こんな人にオススメ plotlyのgo.Layout ...

続きを見る


【plotly&layout.geo】projectionのtype一覧(名称先頭がo~z編)

こんな人にオススメ plotlyのgo.Layout ...

続きを見る

運営者のメガネとです。YouTubeTwitterInstagramも運営中。

自己紹介はこちらから、お問い合わせはこちらからお願いいたします。

運営者メガネ

マップ作成

ということで早速マップ作成を行う。今回はマップの描き方、図法がメインになるのでplotlyの「Mixed Subplots in Python」の火山の位置データを使用する。

下準備

import pandas as pd
import plotly.graph_objects as go
import plotly.io as pio

下準備のimport関連。pandasでデータを読み込み・整理し、goでマップ化、そしてpioで保存。

データの読み込み

# 火山データの取得
file = '<https://raw.githubusercontent.com/plotly/datasets/master/volcano_db.csv>'
df = pd.read_csv(file, encoding='iso-8859-1',)
print(df.columns.values)
# ['Number' 'Volcano Name' 'Country' 'Region' 'Latitude' 'Longitude' 'Elev'
#  'Type' 'Status' 'Last Known']

GitHubに火山のデータがあるようなのでこれを読み込み。ヘッダーには番号や名前などが記載されている。今回は座標と火山の名称を使用することとする。

マップ化

# projection_typeをいじって色々な図法を試す
for num, projection_type in enumerate(projection_types):
    plot = [
        go.Scattergeo(
            lat=df['Latitude'], lon=df['Longitude'],
            text=df['Volcano Name'],  # 追加テキストは火山の名称
            marker_color='crimson',  # マーカーの色は赤系
            marker_symbol='triangle-up'  # マーカーは上向き三角
        ),
    ]

    layout = go.Layout(
        # マップタイトルを作成
        title=f'{num}: {projection_type}',
        geo=dict(
            # 図法を設定
            projection_type=projection_type,
            # 緯度・経度の線を表示
            lataxis_showgrid=True, lonaxis_showgrid=True,
        ),
    )

    fig = go.Figure(data=plot, layout=layout)
    # fig.show()

    pio.orca.config.executable = '/Applications/orca.app/Contents/MacOS/orca'
    pio.write_html(fig, f'{projection_type}.html', )
    pio.write_image(fig, f'{projection_type}.png')

今回は特に説明せずにサクッと作成。Scattergeoについては以下の記事参照。

【plotly&Scattergeo】世界地図に各国の首都の位置をプロット

こんな人にオススメ 日本の ...

続きを見る

projection_type一覧(e~g)

ということでprojection_typeのうち、先頭アルファベットがe~gのものをマップ化。マップは動かせるようにしてあるので、自由にグリグリしていただきたい。

airy


aitoff


albers usa


albers


august


azimuthal equal area


azimuthal equidistant


baker


bertin1953


boggs


bonne


bottomley


bromley


collignon


conic conformal


conic equal area


conic equidistant


craig


craster


cylindrical equal area