Pythonのコードがそのままwebアプリになる『Streamlit』を試してみた
公式サイト: https://www.streamlit.io/
データサイエンティストや機械学習エンジニアが、数時間で美しくて良いパフォーマンスのアプリを作成する一番簡単な方法だそうです。
単純に面白そうなのでやってみました。
参考にした記事
- 公式ドキュメント
- Pythonのスクリプトからウェブアプリを簡単に作れるStreamlitをさわってみた
- Streamlit: データサイエンティストのためのフロントエンド
- Streamlitで確率分布のシミュレーションアプリを作ってみた
できたもの
↑ブログのダークテーマとめちゃくちゃ相性悪くて草
色々試しながら書いてたのを消すのもアレだったので、試行錯誤の部分や参考サイトのコードがそのまま載っていたりしますが、コメント部分(特に前半)は気にしないでください。
文字が「和の平均値」って意味不明になっています(今気づいた)が、これは最初は和だったのを平均値に変えた名残です。
numpy.histogramとstreamlit.barchartで最初やってたら、グラフがめちゃくちゃになったのでやめたのもソースから伺えます。
整数値を取り扱うとnumpyで厳密性が損なわれるのだろうか?
動いてるところを動画にしました。
サイコロをいくつか振った時の平均値のグラフがサイコロの数を増やすと正規分布に近くという 中心極限定理のデモアプリです。
このアプリを試したい方へ
Gistでソースコードを公開しているので、Streamlitをインストールすれば誰でも手元で実行できます。
インストール方法
pip streamlit
実行方法
streamlit run https://gist.githubusercontent.com/kokuyokugetter/1a7ec1243f469be03fa4574c05bf5018/raw/a49ca69a2f33a9945602caddd607898e2bf0b0ac/clt_demo_dice.py
要するにstreamlit run
の後にソースコードを食わせれば良いっぽいです。gistは上げたコードのRawデータのページを呼び出せるので、そのリンクから実行可能です。
感想
変数をスライダーで変えながらグラフに描画できるので、jupyterとかでいちいち変数の値を変えて再度実行とするより効果的な場面は出てきそうです。