PythonでCSVファイルを読み込んでグラフとして表示する方法

スポンサーリンク

読者のこの記事では、Pythonでdashを使ってCSVファイルから素早くダッシュボードを構築する方法を見ていきます。

DashはPythonのフレームワークで、誰でも簡単にPythonでダッシュボードを作ることができ、直接必要なフロントエンドを扱う必要がないのが特徴です。

スポンサーリンク

Python でダッシュボードを作成する手順

それでは早速、Pythonでdashライブラリを使ってCSVファイルからデータを表示するダッシュボードを作ってみましょう。

ステップ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` にアクセスしたときの出力を見てみましょう。

Dashboard Output
Dashboard Output

見てわかるように、たった数行のPythonコードで見栄えのするインタラクティブなダッシュボードが出来上がりました。

まとめ

この記事では、Dashを使用してCSVファイルからPythonでダッシュボードを構築する方法を学びました。

タイトルとURLをコピーしました