金子邦彦研究室プログラミングPython による Web アプリの見本(Dash, Flash を使用)Python のデータフレームを Web ページに表示(Dash を使用)

Python のデータフレームを Web ページに表示(Dash を使用)

ユースケース:Web で pandas データフレームを簡単に表示したい。そして、ユーザ側で操作ができるようにしたい。

サイト内の関連ページ

参考Webページ

前準備

Python の準備(Windows,Ubuntu 上)

サイト内の関連ページ

関連する外部ページ

Python の公式ページ: https://www.python.org/

Dash のインストール

Iris データセットを確認してみる

Python プログラムの実行

Python プログラムの実行

Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

Python のまとめ: 別ページ »にまとめ

import pandas as pd
import seaborn as sns

X = sns.load_dataset('iris')
print(X)

[image]

Web で pandas データフレームの表示、散布図

Web で pandas データフレームの表示を行う dash プログラム

ここでは、Iris データセットを使う

  1. まず、次のようなPython プログラムをhoge.pyのようなファイル名で保存
    # -*- coding: utf-8 -*-
    import dash
    import dash_table
    import dash_core_components as dcc
    import dash_html_components as html
    import pandas as pd
    import seaborn as sns
    
    X = sns.load_dataset('iris')
    
    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    
    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    
    app.layout = html.Div(children=[
        html.H1(children='Iris DataSet'),
    
        html.Div(children='''
            Iris DataSet Display
        '''),
    
        dash_table.DataTable(
            id='table',
            columns=[ {"name": i, "id": i} for i in X.columns], 
            data=X.to_dict("rows")
        )
    ])
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    
  2. hoge.py を実行
  3. Web ブラウザで、localhost:8050 を開く。次のような画面が出れば、動作OK

    [image]

Web で pandas データフレームの散布図表示を行う dash プログラム

Iris データセットについて、0列目と 1列目の散布図を表示する.

関連する外部ページhttps://dash.plot.ly/getting-started

  1. まず、次のようなPython プログラムをhoge.pyのようなファイル名で保存
    # -*- coding: utf-8 -*-
    import dash
    import dash_table
    import dash_core_components as dcc
    import dash_html_components as html
    import pandas as pd
    import seaborn as sns
    import plotly.graph_objs as go
    
    X = sns.load_dataset('iris')
    
    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    
    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    
    app.layout = html.Div(children=[
        html.H1(children='Iris DataSet'),
    
        html.Div(children='''
            Iris DataSet Display
        '''),
    
        dcc.Graph(
            id='example-graph',
            figure={
                'data': [
                    go.Scatter(
                        x = X.iloc[:,0], 
                        y = X.iloc[:,1],
                        mode = 'markers', 
                        marker={
                            'size': 10, 
                            'line': {'width': 0.5, 'color': 'white'}
                        }
                    )
                ],
                'layout': {
                    'title': 'Iris DataSet Graph'
                }
            }
        )
    
    ])
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    
  2. hoge.py を実行
  3. Web ブラウザで、localhost:8050 を開く。次のような画面が出れば、動作OK

    [image]

Web で pandas データフレームの色付きの散布図表示を行う dash プログラム

Iris データセットについて、0列目と 1列目の散布図, 4列目を使って色分け,

関連する外部ページhttps://dash.plot.ly/getting-started

  1. まず、次のようなPython プログラムをhoge.pyのようなファイル名で保存
    # -*- coding: utf-8 -*-
    import dash
    import dash_table
    import dash_core_components as dcc
    import dash_html_components as html
    import pandas as pd
    import seaborn as sns
    import plotly.graph_objs as go
    
    X = sns.load_dataset('iris')
     
    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    
    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    
    app.layout = html.Div(children=[
        html.H1(children='Iris DataSet'),
    
        html.Div(children='''
            Iris DataSet Display
        '''),
    
        dcc.Graph(
            id='example-graph',
            figure={
                'data': [
                    go.Scatter(
                        x = X[X.iloc[:,4]==i].iloc[:,0], 
                        y = X[X.iloc[:,4]==i].iloc[:,1],
                        mode = 'markers', 
                        marker={
                            'size': 10, 
                            'line': {'width': 0.5, 'color': 'white'}
                        }, 
                        opacity = 0.5, 
                        name=i
                    ) for i in X.iloc[:,4].unique()  
                ],
                'layout': {
                    'title': 'Iris DataSet Graph'
                }
            }
        )
    
    ])
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    
  2. hoge.py を実行
  3. Web ブラウザで、localhost:8050 を開く。次のような画面が出れば、動作OK

    [image]