Contents
StreamlitでBVLEプロットアプリの作成
Webアプリを作成するためにFlaskやDjangoを勉強していましたが、なかなかGUIの作成まで辿りつかないまま挫折していました。
今回Streamlitという素晴らしいモジュールと出会ったので、こちらを使って簡単なBVLEプロットアプリを作成してみました。
先に動作イメージは以下のような感じです。
サブウィンドウ、スライダー、ラジオボタンや入力ボックスの設置、グラフ表示等を簡単に行うことができます。
またLatexも使うことができます!
サイドバーへの表示、ラジオボタンの設置
サイドバーへの表示、ラジオボタンの設置は以下のように設定できます。
サイドバーは、sidebarを間に挟むだけす。
ラジオボタンは、radio(表示文字列、(選択肢1、選択肢2))で設定できます。
# サイドバーへの表示は、sidebarを追加
st.sidebar.subheader("計算条件")
methods = st.sidebar.radio(
"物性推算法を選択してください",
('Wilson', 'NRTL'))
spec = st.sidebar.radio(
"T spec or P spec?",
('T spec', 'P spec'))
スライドバーの設置、入力ボックス、グラフの表示
スライドバーの設置はslidebar(表示文字列、最小値、最大値、刻み幅、初期阿合)で以下のように設定できます。
またグラフについては、例えばMatplotlibを使う場合、事前に定義したfigをwrite()でそのまま表示できます。
if spec == 'T spec':
# スライドバー
T = st.sidebar.slider('Temperature[K]', min_value=300, max_value=500, step=1, value=300)
st.sidebar.write("Temperature: ", T, '[K]')
else:
P = st.sidebar.slider('Pressure[kPa]', min_value=50, max_value=500, step=1, value=100)
st.sidebar.write("Pressure: ", P, '[kPa]')
# 入力ボックスの表示
xnum = st.sidebar.number_input('組成の刻み幅', 0, 51, 21)
#グラフ表示
fig = plt.figure(figsize=(10, 8))
,,,
st.write(fig)
以上、簡単ですが上の動画と合わせてみていただくと、動作イメージが掴みやすいかと思います。
これほど簡単にInteractiveなGUIを作れるモジュールがあるとは知りませんでした。
コメント