Streamlitで簡単にWebAppが作れるらしい
はじめに
簡易的なものを作りたいのであれば、Django, Flaskと比べ簡単に爆速で作れるらしい。
まずはお触りのために3Dの曲面wireframeをスライダーで回転させてみる。
インストール
いつものようにpip
でインストールする。
>pip install streamlit ... >streamlit --version Streamlit, version 0.83.0
曲面の表示
ソースコードは以下となる。特別難しいことはないと思う。
import streamlit as st import numpy as np import pandas as pd import matplotlib.pyplot as plt def f(x, y, a, b, c): return a * (x**2) + b * (y**2) + c def main(): x, y = np.linspace(-50, 50, 50), np.linspace(-50, 50, 50) X, Y = np.meshgrid(x, y) Z = f(X, Y, -1, 1, 3) fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(X, Y, Z, s=10, c=Z.flatten()) h_rot = st.slider(label='縦方向の回転', min_value=-180, max_value=180, value=0, ) v_rot = st.slider(label='横方向の回転', min_value=-180, max_value=180, value=0, ) ax.view_init(elev=h_rot, azim=v_rot) st.pyplot(fig) if __name__ == '__main__': main()
適当な名前で保存したら、streamlit run ${適当な名前}.py
で起動できる。
gifにしようとしたけど、うまくできんかったから諦め。
...これじゃゲロ重くてストレスたまっちゃうので別の方法でやらないといけないですね。
でも、ちょっと探した感じでは、インタラクティブに3Dグラフをグリグリはできない?っぽい。