【Streamlit】Chart elementsでデータを可視化しよう!

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

こんにちは、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() は、エリアグラフを作成するための関数です。時系列データの推移や、複数のデータの累積値を比較する際に便利です。

メソッドシグネチャ:

Python
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 パラメータで指定した幅が使用されます。
Python
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軸に y1y2 の2つの系列を指定して面グラフを作成しています。

st.bar_chart(): 棒グラフを作成

st.bar_chart() は、棒グラフを作成するための関数です。カテゴリごとのデータの比較や、ランキングを表示する際に役立ちます。

メソッドシグネチャ:

Python
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 パラメータで指定した幅が使用されます。
Python
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() は、折れ線グラフを作成するための関数です。時系列データの推移や、データのトレンドを把握する際に使用します。

メソッドシグネチャ:

Python
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 パラメータで指定した幅が使用されます。
Python
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つの変数の相関関係を分析する際に利用します。

メソッドシグネチャ:

Python
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 パラメータで指定した幅が使用されます。
Python
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を活用してみてください。

参考サイト

Pythonに関する書籍の<PR>です。

24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。

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

コメント

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