Lors de la création d'une application Web avec des graphiques basés sur Python, j'ai utilisé la combinaison de la bibliothèque de graphiques Plotly
+ framework d'application Web Dash by Plotly
.
Cependant, cette fois, j'ai rencontré une grande recrue Streamlit
avec un grand potentiel pour menacer la position de Dash
, donc je vais déposer un mémo écrit comme un test.
Streamlit is an open-source app framework for Machine Learning and Data Science teams. Create beautiful data apps in hours, not weeks. All in pure Python. All for free.
Un framework d'application qui vous permet de créer une application Web avec un seul script Python sans écrire HTML / CSS / JavaScript.
Le front-end est fait avec React
+ Bootstrap
, et on peut dire que c'est presque le même type de framework que Dash
, y compris le fait que le script Python seul est OK.
Comparé à Dash
, Streamlit
n'a pas la flexibilité de décider librement du style et de la mise en page.
Il n'y a pas d'API à mettre dans des CSS et des styles personnalisés, et la mise en page est fermement décidée par le menu latéral + le modèle de corps.
En d'autres termes, puisque le côté framework définit les spécifications, y compris la conception, vous pouvez vous concentrer davantage que «Dash» sur l'écriture de scripts pour le traitement principal du traitement et de l'analyse des données sans le coût de la conception.
En outre, Dash
est un cadre d'application Web dédié à Plotly
, mais Streamlit
prend en charge les bibliothèques de graphiques suivantes.
Matplotlib
--Seaborn
est aussi un wrapper pour Maptplotlib
, donc ça va probablementAltair
Graphviz
Plotly
――Bien sûr, Plotly Express
est également correct!Bokeh
«Plotly» n'est pas tellement, vous pouvez créer une application Web même dans tous les cas.
$ pip install streamlit
$ streamlit hello
La page de démonstration sera lancée sur «http: // localhost: 8501 /».
Écrivez un exemple de script qiita.py
qui trace les données de Plotly Express
. C'est assez simple.
qiita.py
import streamlit as st
import plotly.express as px
import plotly.io as pio
# data
data = px.data.iris()
# sidemenu
st.sidebar.markdown(
"# Qiita sample"
)
template = st.sidebar.selectbox(
"Template", list(pio.templates.keys())
)
# body
st.write(
px.scatter(data, x="sepal_width", y="sepal_length", template=template)
)
Sur le répertoire où se trouve qiita.py
$ streamlit run qiita.py
Lance l'application sur http: // localhost: 8501 /
.
Si vous écrivez dans Dash
, vous pouvez écrire des composants HTML à la hâte, et je pense que la quantité de code sera doublée.
Tips
Je vais le mettre à jour de temps en temps.
Créez un composant markdown avec st.markdown
et écrivez la balise <style>
directement tout en donnant true
au paramètre ʻunsafe_allow_html`.
st.markdown(
"<style>h1{color: red}</style>",
unsafe_allow_html=True
)
C'est un code de magie noire parce que Streamlit
n'a pas de bouche de style, mais même si vous consultez la page du forum du corps principal, il semble qu'il n'y en ait que cela,
streamlit run
Par exemple, si vous souhaitez exécuter rapidement le code source téléchargé sur GitHub, Streamlit
peut être exécuté comme suit sans clone local.
$ streamlit run https://raw.githubusercontent.com/prs-watch/streamlit-sample/master/sample.py
L'exemple de référentiel illustré ci-dessus est ici.
Étant donné que le coût de conception peut être réduit, vous pouvez créer une application Web rapidement avec une petite quantité de code. Le design fourni est simple et je l'aime bien.
Dash
a les bons points de Dash
, et Streamlit
lui-même n'a pas été publié dans la version majeure, mais il est très utile si vous voulez créer une application facilement.
Le niveau de recommandation est élevé, donc si vous voulez faire un tableau de bord, par exemple, pourquoi ne pas écrire un test une fois?
Recommended Posts