Plotly を試してみる
【概要】
Plotly(プロットリー)は、ブラウザ上で操作できる対話的なグラフ(マウスでの拡大や項目の表示切り替えができるグラフ)を作成する Python のライブラリです。この演習では、乱数で作った点を散布図(点を座標平面に打つグラフ)として描き、Plotly の基本的な使い方を確認します。
【目次】
【関連する外部ページ】
【サイト内の関連情報】
第1章 Plotly で散布図を描く演習
演習1
テーマ名:乱数で作った点を Plotly の対話的な散布図として描く。
手順
あらかじめ、必要なパッケージをインストールします。静的な画像(PNG など)として保存する場合は、別途 kaleido(カレイド)パッケージが必要です。kaleido v1 以降は Chrome(または Chromium)の同梱をやめ、実行する環境にあらかじめインストールされた Chrome を利用します。そのため、PNG 保存を行うには Chrome(または Chromium)も必要です。
pip install -U --no-user plotly kaleido numpy
次のコードを実行(メモ帳を用いる場合は a.py のようなファイル名で保存して実行)します。実行すると、対話的な散布図がブラウザに表示されます。
import plotly.graph_objs as go
import numpy as np
N = 100
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
sz = np.random.rand(N) * 30
fig = go.Figure()
fig.add_scatter(x=x,
y=y,
mode='markers',
marker={'size': sz,
'color': colors,
'opacity': 0.6,
'colorscale': 'Viridis'})
fig.show()
fig.write_image('fig1.png')
fig.show() で対話的なグラフをブラウザに表示し、fig.write_image('fig1.png') でグラフを PNG 画像として保存します(保存には kaleido と Chrome が必要です)。
ヒント
markerのcolorscaleに'Viridis'を指定すると、colorの値に応じて色が変わります。- ブラウザに表示されたグラフは、マウスで拡大したり、範囲を選択したりできます。
考察ポイント
- 実行のたびに点の配置が変わることから、
np.random.randが乱数を生成していることを読み取る。 - ブラウザ上の操作(拡大・移動など)が、保存した PNG(静止画)では行えないことを確認し、対話的なグラフと静的な画像の違いを読み取る。