資料視覺化在電腦科學和資料驅動決策中發揮核心作用。雖然像MatplotlibSeaborn這樣的函式庫通常是學習的第一批工具,但也存在一些更具互動性的框架,可用於為實際應用建立儀表板和報告。其中, StreamlitDashBokeh脫穎而出,因為它們允許開發人員將 Python 程式碼轉換為完整的 Web 應用程式,而無需高級 Web 開發技能。


  1. Streamlit

Streamlit是建立互動式儀表板最簡單的方法之一。它允許開發人員使用純 Python 程式碼並自動建立響應式 Web 介面。您可以用最少的語法加入小部件(滑塊、複選框、文字輸入),使其成為快速原型設計的理想工具。


  1. 達世幣

Dash由 Plotly 開發,功能更強大,可自訂性更強。它結合了 Flask(後端)、React.js(前端)和 Plotly(圖表)。 Dash 應用程式結構更清晰,支援使用回調和佈局來建立企業級儀表板。


  1. 散景

Bokeh是一個用於在瀏覽器中建立互動式、可擴充視覺化效果的函式庫。與 Streamlit 或 Dash 不同,Bokeh 主要專注於視覺化,但它也可以作為儀表板的後端。


範例:使用 Streamlit 建置和部署儀表板

下面是一個使用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


部署到雲端(Streamlit Cloud 範例)

  1. 將您的程式碼推送到GitHub (包含app.pyrequirements.txt儲存庫)。
  • 範例requirements.txt
     streamlit
     pandas
     numpy
     matplotlib
  1. 前往https://streamlit.io/cloud並使用 GitHub 登入。

  2. 點選「New App」 ,選擇你的倉庫和分支,並選擇app.py作為入口檔案。

  3. 部署 — 幾秒鐘後,您的應用程式將上線並帶有以下公開 URL:

   https://your-username-your-repo.streamlit.app

為什麼要使用這些工具?

  • Streamlit → 快速、簡單的儀表板(適合學生、原型)。

  • Dash → 結構化、可投入生產的儀表板(企業使用)。

  • Bokeh → 功能強大且靈活的互動式圖表。


結論

Streamlit、Dash 和 Bokeh 將資料視覺化的可能性擴展到靜態圖表之外。它們使電腦科學專業的學生和專業人士能夠以互動方式分享見解,甚至將其部署為 Web 應用程式。部署到Streamlit CloudHerokuAWS等雲端平台後,可以從任何地方存取這些工具,從而將本地實驗轉變為可共享的專案。


原文出處:https://dev.to/cesar_nikolascamacmelen/building-interactive-dashboards-with-streamlit-dash-and-bokeh-from-code-to-cloud-5hdb


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   💬6   ❤️11
454
🥈
我愛JS
📝1   💬5   ❤️4
88
🥉
AppleLily
📝1   💬4   ❤️1
47
#4
💬2  
6
#5
💬1  
5
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次