Python Dash と Plotly を使用してライブ グラフをプロットする
Python には、インタラクティブで動的なビジュアライゼーションを作成するための Dash や Plotly などの強力なツールが用意されており、これを使用してライブ グラフを作成できるため、貴重な洞察を得るために不可欠なデータをリアルタイムで視覚化できます。この記事では、Python Dash と Plotly を使用してライブ グラフをプロットする方法について説明します。
Dash アプリケーションを設定し、レイアウトを定義し、コールバックを使用してグラフを動的に更新する方法を学びます。 Plotly の豊富な視覚化機能と Dash の柔軟性を活用することで、変化するデータに対応するリアルタイム グラフを作成できます。センサー データの監視、財務傾向の追跡、ライブ分析の視覚化など、Python Dash と Plotly は対話型グラフ作成のための効率的なソリューションを提供します。
Python Dash と Plotly を使用してライブ グラフをプロットするにはどうすればよいですか?
以下は、Python DashとPlotlyを使用してライブグラフをプロットするために従う手順です-
必要なモジュールをインポートします-
`dash` と `plotly.graph_objs` は、`dash` および `plotly` パッケージからインポートされます。
-
`dcc` と `html` は、コンポーネントを作成するために `dash` パッケージからインポートされます。
`Output`、`Input`、および `Interval` は、コールバックの定義とコンポーネントの更新のために `dash.dependency` モジュールからインポートされます。
Dash アプリを初期化します。
`Dash` クラスのインスタンスを作成し、それを `app` 変数に割り当てます。
アプリのレイアウトを定義します。
`html.Div` コンポーネントを使用して、アプリのコンテンツのコンテナを作成します。
`Div` 内に `html.H2` コンポーネントを追加して、タイトル「Live Graph」を表示します。
グラフを表示するには、`dcc.Graph` コンポーネントを `id` の "live-graph" で追加します。ライブ アップデートを有効にするには、`animate` を `True` に設定します。
「graph-update」の `id` を持つ `dcc.Interval` コンポーネントを含めて、グラフが更新される間隔を定義します。
コールバック関数を定義します。
-
`@app.callback` デコレータを使用して、グラフを更新する関数を指定します。
コールバック関数は、`graph-update` コンポーネントの `n_intervals` プロパティを入力として受け取ります。このプロパティは、間隔が経過した回数を表します。
関数内で、x 軸と y 軸の値のランダム データを生成します。以下のプログラム例では、x 軸の範囲は 0 ~ 9、y 軸の値はランダムに生成された 0 ~ 100 の整数です。
グラフ トレースを表す `go.Scatter` オブジェクトを作成します。提供されたパラメータを使用して外観をカスタマイズします。
`go.Layout` オブジェクトを作成して、グラフのレイアウトを定義します。ここでは、生成されたデータに基づいてタイトルを設定し、x 軸と y 軸の範囲を指定します。
表示されるグラフ図を表す `data` コンポーネントと `layout` コンポーネントを含む辞書を返します。
アプリを実行します。
`if __name__ == "__main__":` ブロックを使用して、スクリプトが直接実行される (モジュールとしてインポートされない) 場合にのみアプリが実行されるようにします。
ブロック内で、`app` インスタンスの `run_server` メソッドを呼び出して、Dash サーバーを起動します。デバッグ目的で `debug` を `True` に設定し、サーバーを実行するための `port` 番号を指定します。ここでは8051に設定しています。
これらの手順に従うことで、Dash と Plotly を使用してライブ グラフをプロットできます。ご要望に応じてグラフデータ、外観、レイアウトをカスタマイズできます。次のコマンドを使用して、必要な依存関係 (`dash` と `plotly`) を忘れずにインストールしてください。
pip install dash plotly
プログラムを実行する前。
例
import dash
from dash import dcc, html
from dash.dependencies import Output, Input
import plotly.graph_objs as go
import random
# Initialize the Dash app
app = dash.Dash(__name__)
# Define the layout of the app
app.layout = html.Div(
[
html.H2("Live Graph"),
dcc.Graph(id="live-graph", animate=True),
dcc.Interval(id="graph-update", interval=1000, n_intervals=0),
]
)
# Callback function to update the graph
@app.callback(Output("live-graph", "figure"), [Input("graph-update", "n_intervals")])
def update_graph(n):
# Generate random data
x_data = list(range(10))
y_data = [random.randint(0, 100) for _ in range(10)]
# Create the graph trace
trace = go.Scatter(
x=x_data,
y=y_data,
mode="lines+markers",
name="Data",
line={"color": "rgb(0, 255, 0)"},
marker={"color": "rgb(0, 255, 0)", "size": 8},
)
# Create the graph layout
layout = go.Layout(
title="Live Graph",
xaxis=dict(range=[min(x_data), max(x_data)]),
yaxis=dict(range=[min(y_data), max(y_data)]),
)
# Return the graph figure
return {"data": [trace], "layout": layout}
if __name__ == "__main__":
app.run_server(debug=True, port=8051)
出力
C:\Users\Tutorialspoint>python image.py
Dash is running on http://127.0.0.1:8051/
* Serving Flask app 'image'
* Debug mode: on
結論
結論として、Python Dash と Plotly は、データを動的に視覚化するライブ グラフを作成するための強力な組み合わせを提供します。この記事で概説されている手順に従うことで、Dash アプリケーションを簡単にセットアップし、レイアウトを定義し、リアルタイムでグラフを更新できます。
グラフの外観と動作をカスタマイズできる機能を備えた Python Dash と Plotly により、データ アナリストと開発者は、変化するデータに適応するインタラクティブで洞察に満ちた視覚化を作成できます。監視、分析、レポートのいずれの目的であっても、このアプローチは Python でライブ グラフをプロットするための汎用性の高いソリューションを提供します。