読者のこの記事では、Pythonでdashを使ってCSVファイルから素早くダッシュボードを構築する方法を見ていきます。
DashはPythonのフレームワークで、誰でも簡単にPythonでダッシュボードを作ることができ、直接必要なフロントエンドを扱う必要がないのが特徴です。
Python でダッシュボードを作成する手順
それでは早速、Pythonでdashライブラリを使ってCSVファイルからデータを表示するダッシュボードを作ってみましょう。
この記事もチェック:PythonのPlotlyライブラリを使ってデータを地図上に表示させる方法
ステップ1:Plotlyを使用してデータをプロットする
今回はデータソースに簡単なCSVファイル、つまりCOVID時系列データセットを使用します。
今回はKaggleのこのCOVID-19データセットを使用します。
準備ができたら、使い始めましょう。
プロットの描画には、Pythonのplotlyライブラリを使用します。
pip install plotly
|
それでは、様々な状態の時系列データをプロットしてみましょう。
CSVデータセットからデータを読み込むために、Pandas read_csv()関数を使用します。
たった3行の簡単なコードです。
import plotly.express as px
df = pd.read_csv( 'covid_19_india.csv' )
# Plot the scatterplot using Plotly. We ploy y vs x (#Confirmed vs Date) fig = px.scatter(df, x = 'Date' , y = 'Confirmed' , color = 'State/UnionTerritory' )
fig.update_traces(mode = 'markers+lines' )
fig.show() |
plotlyはデータを見やすく表示してくれるはずです。
では、これをDashアプリケーションでレンダリングしてみましょう。
ステップ 2: Dash を使ってグラフを埋め込む
ダッシュボードアプリケーションをレンダリングするために、Dashを使用します。
このライブラリをインストールします。
pip install dash
|
dash を使って、データをレイアウトしていきます。
その前に、スタイルシート(CSS)を設定して、ページの見栄えを良くしておきましょう!今回はデフォルトのデータを使っています。
今回はdashの公式チュートリアルにあるデフォルトのデータを使用します。
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd
external_stylesheets = [ 'https://codepen.io/chriddyp/pen/bWLwgP.css' ]
app = dash.Dash(__name__, external_stylesheets = external_stylesheets)
colors = {
'background' : '#F0F8FF' ,
'text' : '#00008B'
} |
では、このレイアウトにデータを配置してみましょう。
# Our dataframe df = pd.read_csv( 'covid_19_india.csv' )
fig = px.scatter(df, x = 'Date' , y = 'Confirmed' , color = 'State/UnionTerritory' )
fig.update_traces(mode = 'markers+lines' )
app.layout = html.Div(children = [
html.H1(children = 'COVID-19 Time Series Dashboard' ),
html.Div(children = '''
COVID-19 Dashboard: India.
''' ),
dcc.Graph(
id = 'example-graph' ,
figure = fig
)
]) |
ステップ3:Flaskでアプリケーションサーバを実行する
では、いよいよアプリケーションサーバーを(Flaskを使って)動かしてみましょう。
if __name__ = = '__main__' :
app.run_server(debug = True )
|
これは、ローカルポート8050でサーバーを起動します。
http://localhost:8050` にアクセスしたときの出力を見てみましょう。
見てわかるように、たった数行のPythonコードで見栄えのするインタラクティブなダッシュボードが出来上がりました。
まとめ
この記事では、Dashを使用してCSVファイルからPythonでダッシュボードを構築する方法を学びました。