2020年6月4日木曜日 :ishinonaka

pythonでwebアプリが簡単に作れるStreamlitを使ってみる

python

streamlit

https://www.streamlit.io/

webアプリが簡単に作れる!
ダッシュボードが数行で作れる!
表やグラフを扱える!
という楽しそうな噂を聞いたので使ってみた

インストール

pip install streamlit

依存するライブラリが多いのでvirtualenvなどを使って環境の隔離をしておく

hello world

デモが用意されているので動かしてみる

streamlit run helloworld.py

自動的にブラウザで開く

レスポンシブなのでスマートフォンからの見た目もいい

マッピングとか楽しそう

何か書いてみる

https://docs.streamlit.io/en/latest/getting_started.htmlを参考にする

適当な空のpyファイルを作ってstreamlitを起動

streamlit run first_app.py

何もしない真っ白なwebアプリが立ち上がった
pyファイルに何か書いてみる

import streamlit as st
import pandas as pd

st.title('My first app')

st.write('## テーブル')
st.write('スパムが多い')

df = pd.DataFrame({
    '食べ物': ['卵', 'スパム', 'スパム', 'ベーコン'],
    '人': ['ジョン', 'テリー', 'エリック', 'グレアム']
})

st.write(st.table(df))

ファイルに変更があると右上にRerunと出てくるのでクリックする
出てこなかったらハンバーガーボタン(Ξみたいなやつ)からRerun

反映のための再起動が不要なところがgood

ウィジェット

テキストボックスやチェックボックスを設置してみる

import streamlit as st

'''
# ウィジェット
## input box
テキストの変更もちゃんと反映される
'''

text = st.text_input('入力するよ', 'でふぉると')
st.write(text)

'''
## check box
チェックボックス
'''

if st.checkbox('ちぇっくぼっくす'):
    st.write('オンだよ')
else:
    st.write('オフだよ')

表示するテキストを文字列として埋め込むこともできる
ウィジェットに変化があると自動的に再描画される

matplotlibも使ってみる

import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
import warnings
warnings.filterwarnings('ignore')

n = st.sidebar.number_input('n', min_value=2)

x = np.linspace(0, n*np.pi, 100)
plt.plot(x, np.sin(x))

st.pyplot()

st.sidebar.number_inputのようにsidebarをつけることでサイドバーに設置することができる

感想

  • webアプリとして動くものがpythonの記述だけで作れる
  • 見た目も悪くない
  • 書きやすい

何かを作り始めるときや統計を表示したいときに役立ちそう

  • ?±??G???g???[?d????u?b?N?}?[?N???A

1 件のコメント :

  1. The definite contacts with the objective that you can know are to Escorts contact number in Delhi have the beguiling recuperation by methods for having Escorts contact number in Ahmedabad surface counter along the edge of the talented Bengali Call Girls in Aerocity young females.Call Girls whatsapp number in Ahmedabad This is really the most ideal way can talk and it might about go some hold for you.Call Girls whatsapp number in Ahmedabad If you end up doing with such contrast in the run, Escorts contact number in Haridwar by then you may in like manner equivalently love to have the pleasures at your end?

    返信削除