こんにちは、JS2IIUです。
Streamlitは、Pythonで高速にインタラクティブなWebアプリケーションを開発できるライブラリです。本記事では、公式ドキュメントを参考にしながら、Streamlitで利用可能な全UI要素(ウィジェット)について、すべての指定可能なパラメータとともに、具体的な使用例コード付きで丁寧に解説します。今回もよろしくお願いします。
1. ボタン・入力関連ウィジェット
🔘 st.button
Python
st.button(
label,
key=None,
help=None,
on_click=None,
args=None,
kwargs=None,
type="secondary",
disabled=False,
use_container_width=False
)使用例:
Python
if st.button("クリックしてください"):
st.write("ボタンが押されました")💾 st.download_button
Python
st.download_button(
label,
data,
file_name=None,
mime=None,
key=None,
help=None,
on_click=None,
args=None,
kwargs=None,
disabled=False,
use_container_width=False
)使用例:
Python
text = "ダウンロードする内容です"
st.download_button("テキストをダウンロード", text, file_name="example.txt")☑️ st.checkbox
Python
st.checkbox(
label,
value=False,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
if st.checkbox("表示する"):
st.write("チェックされました")📻 st.radio
Python
st.radio(
label,
options,
index=0,
format_func=str,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
horizontal=False,
label_visibility="visible"
)使用例:
Python
genre = st.radio("好きなジャンルは?", ["SF", "ファンタジー", "ホラー"])
st.write("選択:", genre)🔽 st.selectbox
Python
st.selectbox(
label,
options,
index=0,
format_func=str,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
option = st.selectbox("好きな色を選んでください", ["赤", "青", "緑"])
st.write("選択された色:", option)✅ st.multiselect
Python
st.multiselect(
label,
options,
default=None,
format_func=str,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
max_selections=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
options = st.multiselect("好きなフルーツを選んでください", ["りんご", "バナナ", "みかん"])
st.write("選択:", options)🎚️ st.slider
Python
st.slider(
label,
min_value=None,
max_value=None,
value=None,
step=None,
format=None,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
num = st.slider("数値を選択", 0, 100, 50)
st.write("選んだ値:", num)🔘 st.select_slider
Python
st.select_slider(
label,
options=None,
value=None,
format_func=str,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
level = st.select_slider("難易度を選択", options=["Easy", "Medium", "Hard"])
st.write("選択:", level)📝 st.text_input
Python
st.text_input(
label,
value="",
max_chars=None,
key=None,
type="default",
help=None,
autocomplete=None,
on_change=None,
args=None,
kwargs=None,
placeholder=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
name = st.text_input("名前を入力してください")
st.write("入力された名前:", name)🧾 st.text_area
Python
st.text_area(
label,
value="",
height=None,
max_chars=None,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
placeholder=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
text = st.text_area("コメントを入力")
st.write("入力されたコメント:", text)📅 st.date_input
Python
st.date_input(
label,
value=None,
min_value=None,
max_value=None,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
date = st.date_input("日付を選択")
st.write("選んだ日付:", date)⏰ st.time_input
Python
st.time_input(
label,
value=None,
step=timedelta(minutes=15),
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
time = st.time_input("時間を選択")
st.write("選んだ時間:", time)📁 st.file_uploader
Python
st.file_uploader(
label,
type=None,
accept_multiple_files=False,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
uploaded_file = st.file_uploader("ファイルをアップロード")
if uploaded_file:
st.write(uploaded_file.name)📷 st.camera_input
Python
st.camera_input(
label,
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
picture = st.camera_input("写真を撮ってください")
if picture:
st.image(picture)🎨 st.color_picker
Python
st.color_picker(
label,
value="#000000",
key=None,
help=None,
on_change=None,
args=None,
kwargs=None,
disabled=False,
label_visibility="visible"
)使用例:
Python
color = st.color_picker("色を選んでください")
st.write("選んだ色:", color)2. 表示系ウィジェット
📊 st.dataframe
Python
st.dataframe(
data,
width=None,
height=None,
use_container_width=False,
hide_index=False,
column_order=None,
column_config=None
)使用例:
Python
import pandas as pd
df = pd.DataFrame({"A": [1, 2], "B": [3, 4]})
st.dataframe(df)🧮 st.table
Python
st.table(data)使用例:
Python
st.table(df)📈 st.metric
Python
st.metric(
label,
value,
delta=None,
delta_color="normal",
help=None,
label_visibility="visible"
)使用例:
Python
st.metric(label="売上", value="¥1,000,000", delta="+5%")🔢 st.json
Python
st.json(body, expanded=True)使用例:
Python
st.json({"名前": "田中", "年齢": 30})💻 st.code
Python
st.code(body, language="python", line_numbers=False)使用例:
Python
code = '''
def hello():
print("Hello Streamlit!")
'''
st.code(code, language="python")3. データ編集ウィジェット
✍️ st.data_editor
Python
st.data_editor(
data,
width=None,
height=None,
use_container_width=False,
hide_index=False,
column_order=None,
column_config=None,
num_rows="fixed",
disabled=False,
key=None,
on_change=None,
args=None,
kwargs=None
)使用例:
Python
edited_df = st.data_editor(df)
st.write("編集結果:", edited_df)スクショ通りの表示をさせるコード全体:
Python
import streamlit as st
import pandas as pd
# サンプルデータフレームの作成
data = {
"名前": ["Alice", "Bob", "Charlie", "David"],
"年齢": [25, 30, 35, 40],
"職業": ["Engineer", "Doctor", "Artist", "Teacher"]
}
df = pd.DataFrame(data)
edited_df = st.data_editor(df)
st.write("編集結果:", edited_df)4. その他UI
📋 st.form
Python
with st.form(key):
...
submitted = st.form_submit_button("送信")使用例:
Python
with st.form("my_form"):
name = st.text_input("名前")
age = st.slider("年齢", 0, 100)
submitted = st.form_submit_button("送信")
if submitted:
st.write(f"名前: {name}, 年齢: {age}")まとめ
Streamlitでは、豊富なUI要素をPythonコードだけで簡単に使えます。本記事で紹介したウィジェットは、ユーザーとのインタラクションを活性化し、データ分析やアプリの可能性を広げてくれます。公式ドキュメントにも随時新機能が追加されるため、常にチェックしておくことをおすすめします。
🔗 参考リンク
当ブログのStreamlit関連記事一覧です。こちらも参考にしていただけますと幸いです。ぜひご覧ください。
Streamlit
PythonのWEBフレームワークであるStreamlitについての記事を集めたページです。
最後まで読んでいただきありがとうございます。
もし気になることがあればコメント欄で気軽にお知らせください。

