【Streamlit】st.writeとst.textの違い[Python]

  • URLをコピーしました!
目次

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検定をする方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次