Streamlitのドキュメントを解説します。今回は、Text elements編です。
公式ドキュメントの本文はこちら👇👇
https://docs.streamlit.io/library/api-reference/text
Text elementsの種類
Text elementsは、要するに”文体”です。
Streamlitに実装されているのは、以下の8種類です。
st.markdown(body, unsafe_allow_html=False)
普通の文書が書けるドキュメントですが、一部をBoldにして協調ができるのが特徴です。
st.markdown('Streamlit is **_really_ cool**.')
body (str)
書きたい文字を ”○○○○” の形式で書いてください。強調したい部分を ”○○**○○**” アスタリスクで囲います。
このようなマークダウンをGithub-flavored Markdown(GFM)と言います。GFMに関する詳細は以下をご確認ください。
https://github.github.com/gfm/
ここは、入力不要です。記載しなければ、”Flase”です。
st.title(body, anchor=None)
タイトルなど目立たせたいところに用います。
st.title('This is a title')
body (str)
書きたい文字を ”○○○○” の形式で書いてください。
anchor (str)
アンカーリンク(ページ内リンク)を設定することができます。
st.heder(body, anchor=None)
使い方は、 st.title と全く同じです
st.header('This is a header')
body (str)
書きたい文字を ”○○○○” の形式で書いてください。
anchor (str)
アンカーリンク(ページ内リンク)を設定することができます。
st.subheder(body, anchor=None)
使い方は、 st.title 、st.title と全く同じです
st.subheader('This is a subheader')
body (str)
書きたい文字を ”○○○○” の形式で書いてください。
anchor (str)
アンカーリンク(ページ内リンク)を設定することができます。
st.caption(body)
小さく、灰色の文字で表示されます。注釈など脇に書いておきたいときに使うのが良い
st.caption('This is a string that explains something above.')
body (str)
書きたい文字を ”○○○○” の形式で書いてください。
st.code(body, language=”python”)
コード書くときに使用します。VS codeで書いた時のようにハイライトされます。
>>> code = '''def hello():
... print("Hello, Streamlit!")'''
>>> st.code(code, language='python')
body (str)
コードを記載
language (str)
言語を選択してください。python以外が使用可能か書いてないので不明です。
st.text(body)
シンプルな文字を書くときに使います。st.writeやst.markdownとも大差ないので、webページのバランス見て、使うにが良いかと思います。
st.text('This is some text.')
body (str)
書きたい文章を記載。
st.latex(body)
数式を書くときに使います。
>>> st.latex(r'''
... a + ar + a r^2 + a r^3 + \cdots + a r^{n-1} =
... \sum_{k=0}^{n-1} ar^k =
... a \left(\frac{1-r^{n}}{1-r}\right)
... ''')
body (str or SymPy expression)
これだけは”LaTeX” という特殊な書き方のルールがあります。
以下を参考にしてみてください。👇
https://home.hirosaki-u.ac.jp/jupyter/sympy/
https://note.nkmk.me/python-sympy-factorization-solve-equation/
まとめ
私が、”等エンタルピー変化自動計算プログラム/Calculator for isentropic process(steam & water)”の記事で書いたコードの例も添付しておきます。
st.write('〇乾き度(X)(Quality)')
st.latex(r'X = {Vg \above{2pt} Vg+Vl}')
st.text("Vg : 初期条件の蒸気流量 Steam flow rate for initial conditions (t/h)")
st.text("Vl: 初期条件の熱水流量 Hot water flow rate for initial conditions (t/h)")
st.write('〇比エンタルピー(H)(specific enthalpy)')
st.latex(r'H = Hg\times{X} + Hl\times{(1-X)}')
st.text("Hg : 飽和蒸気の比エンタルピー specific enthalpy of steam (kJ/kg)")
st.text("Hl : 飽和熱水の比エンタルピー specific enthalpy of hot water (kJ/kg)")
st.write("〇温度圧力条件を変化した場合(for another condition)の乾き度(X')と流量(Flow rate)")
st.latex(r'X^{\prime} = \dfrac{H-H^{\prime}l}{H{\prime}g-H^{\prime}l}')
st.text("H'g : Specific enthalpy of steam for another conditions (t/h)")
st.text("H'l : Specific enthalpy of Hot water for another conditions (t/h)")
st.latex(r'V^{\prime}g = X^{\prime}\times{(Vg+Vl)}')
st.latex(r'V^{\prime}l = (1-X^{\prime})\times{(Vg+Vl)}')
st.text("V'g : 別条件の蒸気流量 Steam flow rate for another conditions (t/h)")
st.text("V'l : 別条件の熱水流量 Hot water flow rate for another conditions (t/h)")