1
/
5

#13 Dashで簡単にデータ可視化!(PyCon JP 2024)

実践Dash - 手を抜きながら本気で作るデータ可視化Webアプリの基本と応用

Dashで手軽にデータ可視化アプリを作ろう

Pythonエンジニアの皆さん、データ可視化アプリケーションを手軽に作りたいと思ったことはありませんか?今回は、Plotly社が開発したオープンソースのフレームワーク「Dash」をご紹介します。Dashを使えば、HTMLやJavaScriptの知識がなくても、Pythonだけでインタラクティブなウェブアプリケーションを作ることができます。

Dashの基本

Dashの基本は非常にシンプルです。1つのPythonファイルで動くアプリケーションを作ることができます。pandasでデータを読み込み、plotlyで可視化し、それをDashのコンポーネントとして組み込むだけです。特徴的なのは「callback」機能で、これを使うことでインタラクティブな要素を簡単に実装できます。

コード例

簡単なグラフであれば、このファイル程度のコード量でグラフを表示することが可能となります。

from dash import Dash, html, dcc, callback, Output, Input
import plotly.express as px
import pandas as pd

df = pd.read_csv("Batting.csv")
app = Dash()
app.layout = [
html.H1(children="Dash App for Baseball", style={"textAlign": "center"})
dcc.Dropdown(df.playerID.unique(), "ohtansh01", id="dropdown-selection"),
dcc.Graph(id="hraph-content"),
html.P("Sample data is \"Lahman Baseball Database"", style={"textAlign": "center"})
]

@callback(
Output("graph-content", "figure"),
Input("dropdown-selection", "value")
)
def update_graph(value):
dff = df[df.playerID==value)
return px.bar(dff, x="yearID", y="HR")

if __name__ == "__main__":
app.run(debug=True)

応用と実践

基本を押さえたら、次は応用編です。認証認可の実装やクラウドへのデプロイなど、実用的なアプリケーション開発に必要な要素を学びます。例えば、Docker化してGoogle Cloud Runにデプロイする方法などもあります。

StreamlitとDashの比較

同じくPythonのLow-codeフレームワークであるStreamlitとの比較がよくされます。どちらも長所短所があり、用途に応じて使い分けるのが良いでしょう。Dashはデータ可視化に強く、マルチページアプリケーションの構築が可能です。一方、StreamlitはインタラクティブなアプリケーションやAIチャットボットの作成に向いています。

まとめ

Dashは手軽にデータ可視化アプリケーションを作れる強力なツールです。しかし、本格的な開発になると認証や運用面での課題も出てきます。Low-codeツールを選ぶ際は、他の選択肢も含めて慎重に検討することが大切です。

Dashを使えば、データサイエンティストやアナリストが自分のアイデアを素早くプロトタイプ化し、共有することができます。

ぜひ一度試してみてはいかがでしょうか。

If this story triggered your interest, why don't you come and visit us?
業績好調のため増員募集|経験豊富な代表直下で成長できるIT法人営業
ITEEK株式会社's job postings
2 Likes
2 Likes

Weekly ranking

Show other rankings
Like 上川 諒也's Story
Let 上川 諒也's company know you're interested in their content