0 引入
很多算法工程師在完成數(shù)據(jù)分析柿冲、模型訓(xùn)練或者項(xiàng)目總結(jié)的時候,往往只能通過ppt匯報堵第,添加數(shù)據(jù)圖表吧凉、截圖模型實(shí)驗(yàn)結(jié)果等。如果想提供一個前端演示demo踏志,通撤保可以搭建flask服務(wù),但是flask需要學(xué)習(xí)很多前端知識针余,如css饲鄙、html等,這又是一個深之又深的坑圆雁。那有沒有什么工具能夠跳過這些模塊忍级,直接提供一個可用的前端頁面呢?答案是肯定的摸柄,今天給大家推薦一個輕量化颤练、簡單好用、快速上手的streamlit。
1 streamlit
1.1 什么是streamlit嗦玖?
streamlit 是2019年開源的python庫患雇,在GitHub上已經(jīng)超過了17k的stars了。AI算法工程師利用streamlit可以快速構(gòu)建機(jī)器學(xué)習(xí)應(yīng)用和高級數(shù)據(jù)分析可視化的用戶界面宇挫。更多內(nèi)容和介紹可以參考streamlit的官方幫助文檔
1.2 快速上手
pip安裝
pip install streamlit
安裝好以后苛吱,執(zhí)行如下命令,可以運(yùn)行內(nèi)置演示界面hello
streamlit hello
如果你想停止運(yùn)行器瘪,可以隨時在命令行里使用Ctrl+C終止應(yīng)用翠储。
然后可以創(chuàng)建自己的python腳本app.py
import streamlit as st
st.title("Streamlit Demo")
st.write("Hello Word!")
在python腳本的目錄下,在終端中啟動服務(wù)橡疼。
streamlit run app.py
執(zhí)行后會在8501端口啟動服務(wù)援所,如果啟動成功則顯示如下URL。
本地瀏覽器打開該URL欣除,則為剛剛創(chuàng)建的前端頁面
1.3復(fù)雜功能
1.3.1支持markdown語法
可以把平時寫markdown的習(xí)慣保留下來住拭,用到前端頁面排版上去。
st.markdown("""
## 代碼片段
import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)
""")
前端輸出結(jié)果:
1.3.2 數(shù)據(jù)展示
import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.write(data.head(10))
前端輸出結(jié)果:
1.3.3 自帶畫圖
import streamlit as st
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.line_chart(data)
前端輸出結(jié)果:
streamlit支持的所有圖類型如下:
- 折線圖 line_chart
- 條形圖 bar_chart
- 面積圖 area_chart
1.3.4 Matplotlib
matplotlib大家應(yīng)該不陌生历帚,這是python常用的畫圖工具滔岳。streamlit也支持該畫圖結(jié)果的展示。
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
st.title("matplotlib")
st.subheader("histogram")
fig_mp, ax_mpl = plt.subplots()
ax_mp = plt.hist(data)
plt.xlabel("x")
plt.ylabel("y")
st.pyplot(fig_mp)
前端輸出結(jié)果:
1.3.5 Plotly
import streamlit as st
import numpy as np
import pandas as pd
data = pd.DataFrame(np.random.randn(20,3), columns=['line1', 'line2', 'line3'])
import plotly.express as px
st.title("plotly")
st.subheader("histogram")
fig = px.histogram(data)
st.plotly_chart(fig)
前端輸出結(jié)果:
2 總結(jié)
本文主要介紹了一種適合AI工程師們開箱即用的開源前端展示工具——streamlit挽牢。介紹了streamlit的安裝谱煤、運(yùn)行和幾種圖表。