資料視覺化在電腦科學和資料驅動決策中發揮核心作用。雖然像Matplotlib和Seaborn這樣的函式庫通常是學習的第一批工具,但也存在一些更具互動性的框架,可用於為實際應用建立儀表板和報告。其中, Streamlit 、 Dash和Bokeh脫穎而出,因為它們允許開發人員將 Python 程式碼轉換為完整的 Web 應用程式,而無需高級 Web 開發技能。
Streamlit是建立互動式儀表板最簡單的方法之一。它允許開發人員使用純 Python 程式碼並自動建立響應式 Web 介面。您可以用最少的語法加入小部件(滑塊、複選框、文字輸入),使其成為快速原型設計的理想工具。
Dash由 Plotly 開發,功能更強大,可自訂性更強。它結合了 Flask(後端)、React.js(前端)和 Plotly(圖表)。 Dash 應用程式結構更清晰,支援使用回調和佈局來建立企業級儀表板。
Bokeh是一個用於在瀏覽器中建立互動式、可擴充視覺化效果的函式庫。與 Streamlit 或 Dash 不同,Bokeh 主要專注於視覺化,但它也可以作為儀表板的後端。
下面是一個使用Streamlit可視化隨機值資料集的小範例。我們將把它部署到Streamlit Cloud (學生免費方案)。
app.py
)import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Title
st.title("📊 Interactive Data Dashboard Example")
# Sidebar options
st.sidebar.header("Controls")
n_points = st.sidebar.slider("Number of Data Points", 10, 500, 100)
chart_type = st.sidebar.selectbox("Chart Type", ["Line", "Scatter", "Histogram"])
# Generate random data
data = pd.DataFrame({
"x": np.arange(n_points),
"y": np.random.randn(n_points).cumsum()
})
# Show dataframe
st.write("### Randomly Generated Data", data.head())
# Visualization
st.write("### Visualization")
if chart_type == "Line":
st.line_chart(data.set_index("x"))
elif chart_type == "Scatter":
st.scatter_chart(data.set_index("x"))
elif chart_type == "Histogram":
fig, ax = plt.subplots()
ax.hist(data["y"], bins=20, color="skyblue", edgecolor="black")
st.pyplot(fig)
pip install streamlit pandas numpy matplotlib
streamlit run app.py
瀏覽: http://localhost:8501
app.py
和requirements.txt
儲存庫)。requirements.txt
: streamlit
pandas
numpy
matplotlib
前往https://streamlit.io/cloud並使用 GitHub 登入。
點選「New App」 ,選擇你的倉庫和分支,並選擇app.py
作為入口檔案。
部署 — 幾秒鐘後,您的應用程式將上線並帶有以下公開 URL:
https://your-username-your-repo.streamlit.app
Streamlit → 快速、簡單的儀表板(適合學生、原型)。
Dash → 結構化、可投入生產的儀表板(企業使用)。
Bokeh → 功能強大且靈活的互動式圖表。
Streamlit、Dash 和 Bokeh 將資料視覺化的可能性擴展到靜態圖表之外。它們使電腦科學專業的學生和專業人士能夠以互動方式分享見解,甚至將其部署為 Web 應用程式。部署到Streamlit Cloud 、 Heroku或AWS等雲端平台後,可以從任何地方存取這些工具,從而將本地實驗轉變為可共享的專案。