Streamlit
前回、Streamlitのレイアウトに関するウィジェットst.sidebar、st.columns、st.tabs、st.expanderの使い方を紹介しました。
今回は文字列を表示するための2つのウィジェット「st.write」と「st.text」の違いを見ていきます。
それでは始めていきましょう。
文字列や数字
まずは文字列や数字を表示させてみます。
とりあえず一番の基本として文字列だけの場合はこんな感じです。
import streamlit as st
st.write("write test")
st.text("text test")
フォントが少し違いますが、両方とも文字列を表示できました。
次に変数を組み合わせて文字列を表示してみます。
import streamlit as st
text = "text"
st.write(f"abc{text}efg")
st.write("abc", text, "efg")
st.text(f"abc{text}efg")
st.text("abc", text, "efg")
フォーマット文字列はフォントの違いはあるものの、どちらも問題なく表示できました。
またst.writeでは「”文字列1”, “文字列2″」のようにカンマで区切ることで複数の文字列を表示できます(ただし半角スペースが入ります)が、「”文字列1”, 変数, “文字列2″」というように変数も入れることができました。
st.textでは「”文字列1”, 変数, “文字列2″」のようにカンマで区切った書き方ではエラーとなってしまいました。
次に計算式として数字を入力してみます。
import streamlit as st
st.write(1 + 2)
st.text(1 + 2)
表示形式の違いはあるもののどちらも計算結果が表示されました。
コード(プログラム)
次にコードを表示してみます。
import streamlit as st
code = "print('text')"
st.write(code)
st.text(code)
コードはコートと認識されず、ただの文字列として表示されました。
なぜコードを試したかというと、Streamlitにはコードを表示するために「st.code」というものがあるからです。
import streamlit as st
code = "print('text')"
st.code(code)
st.codeを使うとコードとして処理されるのではなく、コード用の表示に変わります。
Markdown
次にMarkdown形式を試してみます。
これもMarkdown形式を表示するための「st.markdown」があることから試してみました。
ちなみにst.markdownはこんな感じで、「# 文字列」とするとhtmlのh1のように見出しとなります。
import streamlit as st
st.markdown("# markdown test")
st.writeとst.textで試してみたのがこちら。
import streamlit as st
st.write("# write test")
st.text("# text test")
st.writeではMarkdownとして表示されましたが、st.textでは全てが文字列として表示されました。
Pandasデータフレーム
最後にPandasのデータフレームを試してみます。
import streamlit as st
import pandas as pd
data1 = [1, 2, 3, 4, 5]
data2 = [2, 4, 6, 8, 10]
df = pd.DataFrame([data1, data2])
st.write(df)
st.text(df)
st.writeではテーブルに変換され表示されました。
st.textでもかろうじてテーブルに見えますが、枠線がないことから少しずれて見える箇所もあります。
ということでst.writeを使うと例えばMarkdownやPandasのデータフレームなどを自動で解釈し、それに合った表示をしてくれるようです。
個人的には特に文字列として表示したいという場面でなければ、st.writeを使うでいいのかなと感じました。
次回はPythonでt検定をする方法を紹介します。
ではでは今回はこんな感じで。
コメント