こんにちは!JS2IIUです。今回は、Streamlitでデータフレーム内のデータを棒グラフ(バーチャート)として視覚化する機能を提供するst.column_config.BarChartColumnについて解説します。この機能を活用すれば、データのカテゴリ間の比較や比率を直感的に表現できます。それでは、詳細を見ていきましょう!
はじめに
Streamlitでは、データフレーム内のデータをカスタマイズして表示するための便利な設定が多数提供されています。st.column_config.BarChartColumnは、その一つで、カテゴリ別データを棒グラフ形式で視覚化するためのクラスです。
主な用途
- 売上データの比較:製品や部門ごとの売上を比較。
- 比率の可視化:データの割合や構成比を一目で把握。
- 概要表示:データセットの重要ポイントを視覚化。
主なパラメータ
| パラメータ | 説明 |
|---|---|
label | 列名を指定します。 |
help | マウスオーバー時に表示される補足説明。 |
y_min | Y軸の最小値を設定。 |
y_max | Y軸の最大値を設定。 |
基本的な使い方
以下は、製品ごとの売上データを棒グラフとして視覚化する例です。
サンプルコード
import streamlit as st
import pandas as pd
from streamlit.column_config import BarChartColumn
# データフレームを作成
data = {
"Product": ["A", "B", "C"],
"Sales": [[250, 400, 150, 200, 220, 430, 230, 300, 110, 150, 200,],
[220, 320, 260, 150, 320, 280, 510, 300, 130, 160, 220,],
[120, 450, 300, 110, 300, 470, 320, 300, 120, 180, 230,]]
}
df = pd.DataFrame(data)
# BarChartColumnで列をカスタマイズ
column_config = {
"Sales": BarChartColumn(
label="売上 (単位: 千円)",
help="各製品の売上を棒グラフで表示します。",
y_min=0, # Y軸の最小値
y_max=500 # Y軸の最大値
)
}
# データフレームを表示
st.dataframe(df, column_config=column_config)
サンプルコードの解説
- データの準備
- 製品「A」「B」「C」の売上データをリスト形式で用意しています。
- 各製品の売上をわかりやすくするための簡易データです。
BarChartColumnの設定
label:列名を「売上 (単位: 千円)」と設定し、ユーザーに内容を明示。help:マウスオーバー時に補足情報を表示する機能を追加。y_minとy_max:Y軸の範囲を設定し、グラフのスケールを統一。
- データフレームの表示
st.dataframeにcolumn_configを渡すことで、指定した列を棒グラフとして表示します。
注意点
- データ形式
- 棒グラフにする列は数値データである必要があります。
- Y軸の範囲設定
- データ範囲外の値を持つ場合、適切に
y_minとy_maxを設定することで、正しいスケールで表示されます。
- データの正規化
- 異なる単位やスケールのデータを比較する際は、単位を揃えるか、正規化を検討してください。
まとめ
st.column_config.BarChartColumnは、Streamlitアプリでカテゴリごとの比較を視覚化するための強力なツールです。棒グラフ形式で表示することで、データの重要な部分を一目で把握できるようになります。
次回は、プログレスバーを表示するst.column_config.ProgressColumnについて解説します!
公式ドキュメントはこちら:
st.column_config.BarChartColumn

