カテゴリー

plotly

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

2021年9月27日

こんな人にオススメ

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

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

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

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

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

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

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

続きを見る


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

続きを見る

スポンサーリンク
スポンサーリンク

運営者のメガネです。TwitterInstagramも運営してます。

自己紹介はこちらから、お問い合わせはこちら。

運営者メガネ

マップ作成

ということで早速マップ作成を行う。今回はマップの描き方、図法がメインになるので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一覧(h~n)

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

hammer


hill


homolosine


hufnagel


hyperelliptical


kavrayskiy7


lagrange


larrivee


laskowski


loximuthal


mercator


miller


mollweide


mt flat polar parabolic


mt flat polar quartic


mt flat polar sinusoidal


natural earth


natural earth1


natural earth2


nell hammer


nicolosi