📝

Dashを用いてダッシュボードを作成しました

2023/12/31に公開

こんにちは、理学療法士・トレーナーとして活動しながら、個人でソフトウェアを開発しているだいじろうです

わたしたち理学療法士は、臨床業務のなかでデータ分析をおこなうことは少なくありません

臨床研究などの環境が恵まれている施設であれば、さまざまなデータ分析ソフトが導入されていたりするのですが、そういう施設は少ないと思います

そういった恵まれた環境にない医療・介護従事者でも気軽にデータ分析ができればなと思い、ダッシュボードを作成してみました

MediSight

https://medisight.onrender.com/

これから少しずつ機能を充実させていきたいなと思います

無料でお使いいただけますので、ご意見・ご要望などをいただけると幸いです

ということで、忘備録としてDashについて学んだことを残していきたいと思います

Dashの基本コード

以下のサイトを参考にしていきます

https://dash.plotly.com/

まずはHello Worldの表示です

app.pyに以下のコードを記載します

app.py
# 必要なモジュールのインポート
from dash import Dash, html

# アプリの定義
app = Dash(__name__)

# アプリのレイアウト|グラフの表示
app.layout = html.Div(children=[
    html.H1(children='Hello World'),
])

# アプリの起動
if __name__ == '__main__':
    app.run(debug=True)

ターミナルから実行します

$ python3 app.py

実行後に表示される http://127.0.0.1:8050/ にアクセスします

こんな感じです

グラフの表示

plotlyによってグラフの表示も簡単にできます

app.py
# 必要なモジュールのインポート
from dash import Dash, html, dcc
import plotly.express as px
import pandas as pd

# アプリの定義
app = Dash(__name__)

# データの作成
df = pd.DataFrame(
    {
    "name": ["Masahiro", "Takuya", "Goro", "Tsuyoshi", "Shingo"],
    "height": [165, 176, 172, 170, 183]
    }
)

# グラフの作成
fig = px.bar(
    df,
    x = "name",
    y = "height"
)

# アプリのレイアウト
app.layout = html.Div(
    [
        html.H1(
            'Hello Dash'
        ),
        html.Div(
            "とある男性グループの身長"
        ),
        # グラフの表示
        dcc.Graph(
            id = 'example-graph',
            figure = fig
        )
    ]
)

# アプリの起動
if __name__ == '__main__':
    app.run(debug = True)

”children =”は省略することができます
※これが省略されていることをしっておくと、後ほど出てくるOutputの部分が理解しやすいかもです

また、Dashでは、コードを変更すると自動で表示が更新されるので楽です

サイトをみているといろんなことができるようなので、これから本腰入れて勉強していきたいと思います

Discussion