Beim Erstellen einer Webanwendung mit auf Python basierenden Diagrammen habe ich die Kombination der Diagrammbibliothek "Plotly" + Webanwendungsframework "Dash by Plotly" verwendet. Diesmal habe ich jedoch einen großen Rookie namens "Streamlit" getroffen, der ein großes Potenzial hat, die Position von "Dash" zu gefährden. Deshalb werde ich ein als Test geschriebenes Memo fallen lassen.
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.
Ein Anwendungsframework, mit dem Sie eine Webanwendung mit einem einzigen Python-Skript erstellen können, ohne HTML / CSS / JavaScript schreiben zu müssen. Das Frontend wird mit "React" + "Bootstrap" erstellt, und es kann gesagt werden, dass es fast die gleiche Art von Framework wie "Dash" ist, einschließlich des Punktes, dass das Python-Skript allein in Ordnung ist.
Im Vergleich zu "Dash" hat "Streamlit" nicht die Flexibilität, den Stil und das Seitenlayout frei zu bestimmen. Es gibt keine API, die in benutzerdefiniertes CSS und benutzerdefinierte Stile eingefügt werden kann, und das Seitenlayout wird durch das Seitenmenü und die Textvorlage festgelegt. Mit anderen Worten, da die Framework-Seite die Spezifikationen einschließlich des Designs definiert, können Sie sich mehr als "Dash" auf das Schreiben von Skripten für die Hauptverarbeitung der Datenverarbeitung und -analyse konzentrieren, ohne die Kosten für das Design zu tragen.
"Dash" ist auch ein Webanwendungsframework für "Plotly", aber "Streamlit" unterstützt die folgenden Diagrammbibliotheken.
Matplotlib
--Seaborn
ist auch ein Wrapper für Maptplotlib
, also ist es wahrscheinlich okayAltair
Graphviz
Plotly
"Natürlich ist" Plotly Express "auch in Ordnung!Bokeh
Plotly
ist nicht so sehr, Sie können sogar in jedem Fall eine Webanwendung erstellen.
$ pip install streamlit
$ streamlit hello
Die Demoseite wird unter http: // localhost: 8501 / gestartet.
Schreiben Sie ein Beispielskript "qiita.py", das die Daten für "Plotly Express" darstellt. Es ist ziemlich einfach.
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)
)
In dem Verzeichnis, in dem sich qiita.py
befindet
$ streamlit run qiita.py
Startet die Anwendung unter http: // localhost: 8501 /.
Wenn Sie in "Dash" schreiben, können Sie schnell HTML-Komponenten schreiben, und ich denke, dass sich die Codemenge verdoppeln wird.
Tips
Ich werde es von Zeit zu Zeit aktualisieren.
Erstellen Sie eine Markdown-Komponente mit "st.markdown" und schreiben Sie das "