【Streamlit】スライダーで値を調整:st.slider

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

こんにちは、JS2IIUです。
Streamlit上で数値範囲を直感的に選択できるスライダーのUI要素について説明していきます。今回もよろしくお願いします。

1. はじめに

Webアプリケーションでユーザーから数値を入力してもらう場面はよくあります。
たとえば「年齢」「価格の上限」「データ数の範囲」など、選択肢が数値の範囲にあるとき、スライダー形式のUIを使うと、入力がとても直感的になります。

PythonでGUIを簡単に作成できるフレームワーク「Streamlit」では、st.sliderを使って数値・日付・時間を選択するスライダーを作成できます。

この記事では、

  • st.sliderの基本的な使い方
  • 各種パラメータの設定方法
  • スライダーの応用例(グラフとの連動)

をステップバイステップで紹介していきます!

2. st.sliderとは?

st.sliderは、数値や日付・時間の入力を、マウスのドラッグやクリックで直感的に選べるウィジェットです。

使用目的の例:

  • ユーザーにある範囲の値を選ばせたいとき
  • フィルタリング条件を入力させたいとき
  • グラフやチャートの表示範囲を変更したいとき

3. 基本的な使い方

3.1 最もシンプルな例:1つの数値を選択

ステップ 1:Streamlit をインポート

Python
import streamlit as st

ステップ 2:スライダーを作成

Python
value = st.slider('数値を選んでください', 0, 100)

ステップ 3:値を表示

Python
st.write('選択した値:', value)

全体コード:

Python
import streamlit as st

value = st.slider('数値を選んでください', 0, 100)
st.write('選択した値:', value)

解説:

  • '数値を選んでください':スライダーのラベル
  • 0, 100:選択できる範囲(最小値~最大値)

3.2 範囲を選ぶスライダー(タプル)

Python
range_value = st.slider('範囲を選んでください', 0, 100, (25, 75))
st.write('選択した範囲:', range_value)

ここでは (25, 75) のように2つの値(範囲)を返します。

4. st.sliderの主なパラメータ

パラメータ説明
labelスライダーに表示するラベル
min_valueスライダーの最小値
max_valueスライダーの最大値
value初期値(単一 or タプル)
step値の刻み幅
format表示フォーマット(例: "%d 円"
key複数ウィジェットで重複を避けるための識別子

5. いろいろな型のスライダー例

5.1 小数を選ぶスライダー

Python
float_value = st.slider('小数を選んでください', 0.0, 1.0, 0.5, 0.01)
st.write('選択した値:', float_value)
  • 0.0 から 1.0 の間を 0.01 刻みで選択

5.2 日付を選ぶスライダー

Python
import datetime

date = st.slider(
    "日付を選んでください",
    min_value=datetime.date(2020, 1, 1),
    max_value=datetime.date(2025, 12, 31),
    value=datetime.date(2023, 4, 21)
)
st.write('選択した日付:', date)
  • datetime.date型の値を使って、カレンダー風に日付を選択できます。

5.3 時間を選ぶスライダー

Python
import datetime

time = st.slider(
    "時間を選んでください",
    min_value=datetime.time(0, 0),
    max_value=datetime.time(23, 59),
    value=datetime.time(12, 0)
)
st.write('選択した時間:', time)
  • 時間帯を直感的に選ぶ UI も簡単に作成できます。

6. 応用例:スライダーでグラフを動的に変える

Streamlitではスライダーを使って、リアルタイムでグラフを更新することも簡単です。

例:スライダーでデータ数を変更してグラフを表示

Python
import streamlit as st
import numpy as np
import pandas as pd

# スライダーでデータ数を選ぶ
data_count = st.slider('データ数を選んでください', 10, 1000, 100)

# データを作成
data = pd.DataFrame({
    'x': np.arange(data_count),
    'y': np.random.randn(data_count).cumsum()
})

# グラフを表示
st.line_chart(data)

解説:

  • スライダーで選んだ「データ数」に応じて、DataFrame を動的に生成
  • グラフ(line_chart)がスライダー操作に合わせて変化

7. まとめ

今回の記事では、Streamlitのst.sliderを使ってスライダーUIを作る方法を紹介しました。

✔️ 本記事のポイント

  • st.sliderは数値・日付・時間を直感的に選べる便利なウィジェット
  • 単一の値も、範囲も、日付や時間も扱える
  • 他の要素(グラフなど)と連携してインタラクティブなアプリを作成可能

8. 参考リンク

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

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

コメント

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