首頁 >後端開發 >Python教學 >使用 Streamlit 建立儀表板

使用 Streamlit 建立儀表板

WBOY
WBOY原創
2024-09-01 06:34:01876瀏覽

簡介
在本文檔中,我們將探討如何使用 Streamlit 建立互動式儀表板,Streamlit 是一種用於在 Python 中建立 Web 應用程式的開源工具。 Streamlit 讓您只需幾行程式碼即可建立 Web 介面,從而簡化了開發過程。

要求

要遵循此範例,您需要安裝 Python 和以下程式庫:

  • 流線型
  • 熊貓
  • numpy
  • 牽牛星

您可以使用 pip 安裝它們:

pip install streamlit pandas numpy altair

程式碼結構

程式碼分為幾個部分:

  1. 庫導入:我們導入必要的庫來產生範例資料並建立視覺化。
  2. 產生範例資料:我們使用隨機資料建立一個 Pandas DataFrame,以在視覺化中使用。
  3. 儀表板設定:我們使用 st.title() 設定儀表板的標題。
  4. 建立視覺化:
    • 我們使用 st.line_chart() 顯示折線圖。
    • 我們使用 Altair 建立互動式散佈圖,並使用 st.altair_chart() 顯示它。

代碼說明

庫導入:

streamlit as st:我們導入Streamlit函式庫並將其重新命名為st以方便使用。
pandas as pd:我們導入 Pandas 並將其重新命名為 pd。
numpy as np:我們導入 NumPy 並將其重新命名為 np。
altair 作為 alt:我們導入 Altair 並將其重命名為 alt。

產生樣本資料:

我們建立一個名為 data 的 Pandas DataFrame,其中包含兩列:「x」和「y」。
「x」欄位包含使用 np.arange().
從 0 到 99 的整數值 「y」欄位包含使用 np.random.rand() 的 0 到 1 之間的隨機值。

儀表板設定:

我們使用 st.title() 設定儀表板的標題並將標題傳遞為參數。

建立視覺化:

我們使用 st.line_chart() 並傳遞資料 DataFrame 作為參數來顯示折線圖。
我們使用 Altair 建立互動式散佈圖:

alt.Chart(data):我們從資料DataFrame建立一個圖表物件。
.mark_circle():我們指定要使用圓圈作為標記。
.encode(x='x', y='y', tooltip=['x', 'y']): 我們將'x' 和'y' 列分別指派給x 軸和y 軸,並指定我們希望將“x”和“y”列顯示為工具提示。
.interactive():使圖表具有互動性,允許使用者縮放和平移。

我們使用 st.altair_chart() 顯示 Altair 圖表,並將圖表物件作為參數傳遞。我們也指定 use_container_width=True 以便圖表佔據容器的整個寬度。

在 Streamlit Cloud 上部署

要部署此 Streamlit 應用程序,您可以使用 Streamlit Cloud:

  1. 將您的程式碼上傳到 GitHub 儲存庫。
  2. 登入 Streamlit Cloud。
  3. 連接您的 GitHub 儲存庫。
  4. 只需點擊幾下即可部署您的應用程式。

Streamlit Cloud 處理整個部署過程,讓您可以輕鬆地與世界分享您的應用程式。

結果

儲存庫網址:[](https://github.com/FabianChavezLinares/Research-Group-Activity.git)

Creating a Dashboard with Streamlit

Creating a Dashboard with Streamlit

頁面網址:https://research-group-activity-bi-2024-ii.streamlit.app

結論

在本文檔中,我們學習如何使用 Streamlit 建立互動式儀表板。我們產生了範例數據,使用 Streamlit 和 Altair 創建了視覺化,並解釋了程式碼的每個部分。最後,我們提到如何將應用程式部署在 Streamlit Cloud 上以與其他使用者共用。

Streamlit 大大簡化了用 Python 創建互動式 Web 應用程式的過程,使其成為想要輕鬆快速地共享視覺化和分析的資料科學家和開發人員的寶貴工具。

以上是使用 Streamlit 建立儀表板的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn