こんにちは、JS2IIUです。
Streamlitは、Pythonでインタラクティブなウェブアプリケーションを簡単に作成できるオープンソースのライブラリです。データサイエンティストや機械学習エンジニアにとって、分析結果を共有したり、モデルをデプロイしたりする際に非常に便利です。
StreamlitのChart elementsを使うと、データの可視化がさらに簡単になります。この記事では、st.area_chart()、st.bar_chart()、st.line_chart()、st.scatter_chart() の4つのグラフ描画関数のシグネチャとパラメータを解説し、実例を交えながらそれぞれの使用方法を説明していきます。
st.area_chart(): エリアグラフを作成
st.area_chart() は、エリアグラフを作成するための関数です。時系列データの推移や、複数のデータの累積値を比較する際に便利です。
メソッドシグネチャ:
st.area_chart(data=None, *, x=None, y=None, x_label=None, y_label=None, color=None, stack=None, width=None, height=None, use_container_width=True)パラメータ:
data: グラフに使用するデータ (pandas.DataFrame, pandas.Series, NumPy ndarray, または list)。x: x軸に使用するカラム名。y: y軸に使用するカラム名。複数指定可能。x_label,y_label: X軸、Y軸のラベルcolor: グラフの色を指定するstack: エリアチャートのスタック設定width: グラフの幅 (ピクセル)。height: グラフの高さ (ピクセル)。use_container_width: Trueの場合、グラフの幅はコンテナの幅に合わせられます。Falseの場合、widthパラメータで指定した幅が使用されます。
import streamlit as st
import pandas as pd
# サンプルデータを作成
data = pd.DataFrame({
'x': range(1, 11),
'y1': [1, 3, 2, 4, 5, 4, 5, 6, 7, 8],
'y2': [3, 2, 4, 1, 5, 6, 4, 5, 6, 7]
})
st.title('Area Chart')
# 面グラフを表示
st.area_chart(data, x='x', y=['y1', 'y2'])このコードでは、x軸に x、y軸に y1 と y2 の2つの系列を指定して面グラフを作成しています。

st.bar_chart(): 棒グラフを作成
st.bar_chart() は、棒グラフを作成するための関数です。カテゴリごとのデータの比較や、ランキングを表示する際に役立ちます。
メソッドシグネチャ:
st.bar_chart(data=None, *, x=None, y=None, x_label=None, y_label=None, color=None, horizontal=False, stack=None, width=None, height=None, use_container_width=True)パラメータ:
data: グラフに使用するデータ (pandas.DataFrame, pandas.Series, NumPy ndarray, または list)。x: x軸に使用するカラム名。y: y軸に使用するカラム名。x_label,y_label: X軸、Y軸のラベルcolor: グラフの色を指定するhorizontal: バーチャートを横方向にする場合はTrueを指定するwidth: グラフの幅 (ピクセル)。height: グラフの高さ (ピクセル)。use_container_width: Trueの場合、グラフの幅はコンテナの幅に合わせられます。Falseの場合、widthパラメータで指定した幅が使用されます。
import streamlit as st
import pandas as pd
# サンプルデータを作成
data = pd.DataFrame({
'category': ['A', 'B', 'C', 'D'],
'value': [25, 15, 30, 20]
})
st.title('Bar Chart')
# 棒グラフを表示
st.bar_chart(data, x='category', y='value')このコードでは、x軸に category、y軸に value を指定して棒グラフを作成しています。

st.line_chart(): 折れ線グラフを作成
st.line_chart() は、折れ線グラフを作成するための関数です。時系列データの推移や、データのトレンドを把握する際に使用します。
メソッドシグネチャ:
st.line_chart(data=None, *, x=None, y=None, x_label=None, y_label=None, color=None, width=None, height=None, use_container_width=True)パラメータ:
data: グラフに使用するデータ (pandas.DataFrame, pandas.Series, NumPy ndarray, または list)。x: x軸に使用するカラム名。y: y軸に使用するカラム名。複数指定可能。x_label,y_label: X軸、Y軸のラベルcolor: グラフの色を指定するwidth: グラフの幅 (ピクセル)。height: グラフの高さ (ピクセル)。use_container_width: Trueの場合、グラフの幅はコンテナの幅に合わせられます。Falseの場合、widthパラメータで指定した幅が使用されます。
import streamlit as st
import pandas as pd
# サンプルデータを作成
data = pd.DataFrame({
'x': range(1, 11),
'y': [1, 3, 2, 4, 5, 4, 5, 6, 7, 8]
})
# 折れ線グラフを表示
st.line_chart(data, x='x', y='y')このコードでは、x軸に x、y軸に y を指定して折れ線グラフを作成しています。

st.scatter_chart(): 散布図を作成
st.scatter_chart() は、散布図を作成するための関数です。2つの変数の相関関係を分析する際に利用します。
メソッドシグネチャ:
st.scatter_chart(data=None, *, x=None, y=None, x_label=None, y_label=None, color=None, size=None, width=None, height=None, use_container_width=True)パラメータ:
data: グラフに使用するデータ (pandas.DataFrame, pandas.Series, NumPy ndarray, または list)。x: x軸に使用するカラム名。y: y軸に使用するカラム名。x_label,y_label: X軸、Y軸のラベルcolor: データポイントの色を指定するカラム名。size: データポイントのサイズを指定するカラム名。width: グラフの幅 (ピクセル)。height: グラフの高さ (ピクセル)。use_container_width: Trueの場合、グラフの幅はコンテナの幅に合わせられます。Falseの場合、widthパラメータで指定した幅が使用されます。
import streamlit as st
import pandas as pd
import numpy as np
# サンプル数を増やす
np.random.seed(0) # 乱数生成のシードを固定
x = np.random.rand(100) * 10 # 0から10までのランダムな値を100個生成
y = 2 * x + 1 + np.random.randn(100) # xの値に依存したyの値を生成 (ノイズあり)
# サンプルデータを作成
data = pd.DataFrame({
'x': x,
'y': y
})
st.title('Scatter Chart')
# 散布図を表示
st.scatter_chart(data, x='x', y='y')このコードでは、x軸に x、y軸に y を指定して散布図を作成しています。

まとめ
この記事では、StreamlitのChart elementsを用いたデータ可視化について、基本的なグラフ描画関数を例に挙げて解説しました。それぞれの関数のシグネチャとパラメータを理解することで、より柔軟にグラフをカスタマイズすることができます。これらの関数を使いこなすことで、データ分析結果をより効果的に表現し、理解を深めることができます。
Streamlitには、ここで紹介した以外にも様々な機能があります。ぜひ公式ドキュメントなどを参考に、Streamlitを活用してみてください。
参考サイト
- st.area_chart – Streamlit Docs
- st.bar_chart – Streamlit Docs
- st.line_chart – Streamlit Docs
- st.scatter_chart – Streamlit Docs
- Streamlit documentation
Pythonに関する書籍の<PR>です。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。
最後まで読んでいただきありがとうございました。


コメント