Python
 Computer >> コンピューター >  >> プログラミング >> Python

【初心者向け】PythonのPlotlyで地理的プロット(コロプレス図)を作成する方法


Plotlyとは

Pythonには地理データやグラフデータを扱うためのさまざまなライブラリが用意されています。その中でもPlotlyは、地理的なグラフを描くために広く利用されている無料のオープンソースライブラリです。折れ線グラフ、横棒グラフ、縦棒グラフ、ダッシュボード、散布図、バブルチャート、円グラフなど、多彩なグラフを簡単に作成できます。

特に地理データの可視化では「コロプレス図(choropleth map)」と呼ばれる塗り分け地図を描画でき、地域ごとの数値データを色の濃淡で直感的に表現できるのが大きな魅力です。

ライブラリのインポートと初期設定

まずは必要なライブラリをインポートし、Jupyter Notebook上でオフライン表示を有効にします。

# 重要なPythonの地理ライブラリをインポート
import plotly.graph_objs as go
import pandas as pd

# Plotlyをオフラインで使うための必須設定
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot, plot

# 接続を確立
init_notebook_mode(connected=True)

※ 旧バージョンの import plotly.plotly as py は廃止されたため、Plotly 4.x以降では上記のように記述してください。

コロプレス図を作成するコード例

# 地理的プロット用に type を 'choropleth' に指定
data = dict(type='choropleth',
    # 州コード:AK=アラスカ、AZ=アリゾナ、CA=カリフォルニア など
    locations=['AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FM',
               'FL', 'GA', 'GU', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY'],
    # 米国の州として位置情報を解釈
    locationmode='USA-states',
    # 必要に応じてカラースケールを変更可能
    colorscale='Portland',
    # 各地点に表示するテキストは自由に指定できる
    text=['state 1', 'state 2', 'state 3', 'state 4', 'state 5',
          'state 6', 'state 7', 'state 8', 'state 9', 'state 10',
          'state 11', 'state 12', 'state 13', 'state 14', 'state 15',
          'state 16', 'state 17', 'state 18', 'state 19', 'state 20'],
    z=[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
       11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0],
    colorbar={'title': 'USA-states'})

layout = dict(geo={'scope': 'usa'})

# データ辞書をリストとして渡してFigureを生成
choromap = go.Figure(data=[data], layout=layout)

# グラフを描画
iplot(choromap)

コードのポイント

  • type='choropleth' … 地理的な塗り分け地図を描くことを指定します。
  • locations … 州コード(AK=アラスカ、CA=カリフォルニアなど)をリストで渡します。
  • locationmode='USA-states' … 米国の州単位で位置情報を解釈します。
  • colorscale … 「Portland」のほか「Viridis」「Hot」など、好みの配色を選べます。
  • z … 各地域に対応する数値データです。この値をもとに色が自動的に割り当てられます。

出力結果

【初心者向け】PythonのPlotlyで地理的プロット(コロプレス図)を作成する方法

応用例

このようなプロットを活用すれば、目的に応じて多様な形でデータを可視化できます。たとえば次のような使い方が考えられます。

  • 与党(政治勢力)ごとの色分けによる選挙結果マップ
  • 食文化の傾向(菜食・肉食など)に基づく州ごとの分類マップ
  • 人口、平均所得、気温などの統計データの地域分布

米国の州だけでなく、インドの29州を対象にした可視化にも同じ手法が使えます。Plotlyはズームやホバー表示といったインタラクティブな操作に対応した非常に強力なライブラリであり、誰にとっても理解しやすいグラフ形式でデータを表現できます。

  1. PythonのgmplotパッケージでGoogleマップ上にデータをプロットする方法

    Googleマップ上に地理座標を描画する方法はいくつもありますが、その結果をローカルファイル(HTML)として保存したい場合は、Pythonモジュール「gmplot」を利用するのが最も手軽です。gmplotは、matplotlibに似た直感的なインターフェースを備えたPythonライブラリで、HTMLとJavaScriptを自動生成し、Googleマップ上にさまざまなデータを重ねて表示することができます。gmplotのインストール方法gmplotがまだ環境にインストールされていない場合は、pipコマンドで簡単に導入できます。pip install gmplot上記のコマンドを実行すると、以下の

  2. PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法

    はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c