Streamlitは、簡単にWebアプリケーションを作成できるPythonライブラリで、ユーザーとのインタラクションを作る際にテキスト、メッセージ表示が非常に重要な役割を果たします。
Streamlitでメッセージを表示する方法をまとめます。
メッセージ表示の基本方法
Streamlitでメッセージを表示するためには、主に以下のメソッドを使用します。
streamlit.write
st
reamlit
.textst
reamlit
.markdownst
reamlit
.infost
reamlit
.successst
reamlit
.warningst
reamlit
.errorst
reamlit
.exception
以下、それぞれについて詳しく解説します。
write
write
は、最も汎用的なメソッドで、テキスト、数値、データフレーム、Markdownなど様々な形式を表示できます。
import streamlit as st
st.write("これは普通のメッセージです。")
st.write("Markdown形式も使えます: **太字**、*斜体*。")
Markdownが使えるので、簡易的なフォーマットが可能です。
任意のPythonオブジェクトを渡しても表示されます。
text
text
は、シンプルなプレーンテキストを表示するために使います。
st.text("これはプレーンテキストのメッセージです。")
テキストそのままを表示したい場合に適しています。
フォーマットや装飾はできません。
markdown
markdown
は、Markdown形式を使って装飾されたテキストを表示します。
st.markdown("### これは見出しです")
st.markdown("**太字**や_斜体_を使用できます。")
見出しやリストなど、豊富な装飾が可能です。
HTMLタグを使うこともできますが、完全なHTMLサポートはされていません。
info
info
は、情報を伝えるための青いボックスを表示します。
st.info("これは情報メッセージです。")
情報的な内容を目立たせるのに適しています。
success
success
は、成功メッセージを緑色のボックスで表示します。
st.success("操作が成功しました!")
成功や完了を通知するのに最適です。
warning
warning
は、注意メッセージを黄色のボックスで表示します。
st.warning("注意が必要です!")
ユーザーに注意を促す場合に使用します。
error
error
は、エラーメッセージを赤いボックスで表示します。
st.error("エラーが発生しました!")
問題やエラーを強調したいときに使用します。
exception
exception
は、Pythonの例外オブジェクトをフォーマットして表示します。
try:
1 / 0
except ZeroDivisionError as e:
st.exception(e)
エラーの詳細をデバッグのために表示したい場合に便利です。
応用例
動的メッセージの表示
ユーザー入力や計算結果に応じてメッセージを動的に変化させることも可能です。
name = st.text_input("名前を入力してください:")
if name:
st.success(f"こんにちは、{name}さん!")
else:
st.info("名前を入力してください。")
ローディングメッセージ
streamlit.spinner
を使うと、処理中のローディングメッセージを表示できます。
import time
with st.spinner("処理中です..."):
time.sleep(2)
st.success("処理が完了しました!")
処理中メッセージについては、こちらの記事にまとめています。
サンプルコード全文
これまでにご紹介したサンプルコードの全文を記載します。
import streamlit as st
st.write("これは普通のメッセージです。")
st.write("Markdown形式も使えます: **太字**、*斜体*。")
st.text("これはプレーンテキストのメッセージです。")
st.markdown("### これは見出しです")
st.markdown("**太字**や_斜体_を使用できます。")
st.info("これは情報メッセージです。")
st.success("操作が成功しました!")
st.warning("注意が必要です!")
st.error("エラーが発生しました!")
try:
1 / 0
except ZeroDivisionError as e:
st.exception(e)
name = st.text_input("名前を入力してください:")
if name:
st.success(f"こんにちは、{name}さん!")
else:
st.info("名前を入力してください。")
import time
with st.spinner("処理中です..."):
time.sleep(2)
st.success("処理が完了しました!")
まとめ
Streamlitでは、多彩なメッセージ表示方法が用意されており、状況に応じて使い分けることで、ユーザー体験を向上させることができます。視覚的な要素を活用することで、ユーザーが重要な情報を簡単に認識できるようになります。