【Streamlit】st.column_config.LineChartColumnの基本と使い方

Streamlit
この記事は約5分で読めます。

こんにちは、JS2IIUです!
Streamlitを使えば、データを直感的に可視化できます。その中でも、DataFrameのセル内に線グラフ(ラインチャート)を描画できるst.column_config.LineChartColumnを使えば、データのトレンドを一目で確認できます。この記事では、この便利なクラスの使い方を詳しく解説していきます。ぜひ最後までお付き合いください!

はじめに

st.column_config.LineChartColumnは、DataFrameの列をラインチャート形式で表示するための設定を提供するクラスです。
これにより、以下のような用途でデータを視覚化できます:

  • 時系列データの分析(例:売上推移、センサーデータの変動)
  • 数値データのトレンド可視化(例:収益の増減、気温の変化)
  • 一目でデータの変動を把握(例:ピークや低迷時期の確認)

st.column_config.LineChartColumnの主なオプション

  • label: 列名を指定します。
  • help: 補足説明を設定できます。
  • y_min: Y軸の最小値を設定します。
  • y_max: Y軸の最大値を設定します。
  • width: 列の幅をカスタマイズします。

基本的な使い方

以下の例では、製品ごとの月別売上データをラインチャートで表示します。

サンプルコード

import streamlit as st
import pandas as pd
from streamlit.column_config import LineChartColumn

# データフレームを作成
data = {
    "Product": ["A", "B", "C"],
    "Monthly Sales": [
        [100, 150, 220, 170, 340],
        [120, 140, 160, 180, 200],
        [80, 100, 100, 200, 160]
    ]
}
df = pd.DataFrame(data)

# LineChartColumnで列をカスタマイズ
column_config = {
    "Monthly Sales": LineChartColumn(
        label="月別売上推移",
        help="各製品の月別売上をラインチャートで表示します。",
        y_min=0,  # Y軸の最小値
        y_max=350  # Y軸の最大値
    )
}

# カスタム列設定でデータフレームを表示
st.dataframe(df, column_config=column_config)

コード解説

  1. データ作成
    各製品の月別売上をリスト形式で用意しています。
  2. LineChartColumnの設定
  • label: 列名を「月別売上推移」に設定。
  • help: 列の補足説明を「各製品の月別売上をラインチャートで表示します」に設定。
  • y_min/y_max: Y軸の範囲を指定して、チャートのスケールを調整。
  1. データフレーム表示
    Streamlitのst.dataframeで、カスタム設定を反映させたDataFrameを表示します。
    「Monthly Sales」列がラインチャートとして表示されます。

応用例:センサーデータの可視化

以下は、複数のセンサーによる温度測定データを可視化する例です。

サンプルコード

import streamlit as st
import pandas as pd
from streamlit.column_config import LineChartColumn

# センサーの測定データ
sensor_data = {
    "Sensor": ["Sensor 1", "Sensor 2", "Sensor 3"],
    "Temperature Trends": [
        [22, 23, 24, 25, 26],
        [20, 21, 21.5, 22, 22.5],
        [19, 20, 20.5, 21, 21.5]
    ]
}
df_sensor = pd.DataFrame(sensor_data)

# カスタム列設定
column_config_sensor = {
    "Temperature Trends": LineChartColumn(
        label="温度の推移",
        help="センサーごとの温度変化をラインチャートで可視化します。",
        y_min=18,
        y_max=27
    )
}

# データフレーム表示
st.dataframe(df_sensor, column_config=column_config_sensor)

コード解説

  1. センサーデータの作成
    各センサーの温度変化をリスト形式で作成。
  2. LineChartColumnの設定
  • label: 列名を「温度の推移」に設定。
  • help: 温度変化を説明する補足を追加。
  • y_min/y_max: 温度データに合わせたY軸のスケールを設定。
  1. DataFrameの表示
    各センサーの温度変化を視覚的に確認可能なラインチャート形式で表示します。

注意点

  • リスト形式のデータが必要
    ラインチャートとして表示するデータは、各セルがリスト形式である必要があります。
  • Y軸の調整
    データの範囲に応じてy_miny_maxを設定すると、グラフが見やすくなります。
  • 視覚的な一貫性
    異なる範囲のデータを扱う場合、適切なスケール調整が重要です。

まとめ

st.column_config.LineChartColumnを使用すると、データの傾向や変化を簡単に視覚化でき、データ分析の効率が向上します。
売上データの分析やセンサーの測定値モニタリングなど、さまざまな場面で活用できます。ぜひお試しください!

次回は、棒グラフを表示するst.column_config.BarChartColumnについて解説します。お楽しみに!

公式ドキュメントはこちら:st.column_config.LineChartColumn

最後まで読んでいただきありがとうございます。73

コメント

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