Skip to content

建立 2026-09-14 更新 2026-09-14

資料與圖表

資料 App 的核心是「把 DataFrame 變成看得懂的畫面」。Streamlit 內建表格與簡易圖表,也接受 Matplotlib、Altair、Plotly、PyDeck。

表格

import streamlit as st
import pandas as pd

df = pd.DataFrame({"城市": ["台北", "高雄"], "人口": [250, 270]})

st.dataframe(df)      # 可排序、捲動的互動表
st.table(df)          # 靜態表,適合小資料
st.data_editor(df)    # 使用者可在畫面上改值

大表用 st.dataframe()。需要使用者改數字再計算時用 st.data_editor()

內建圖表

st.line_chart(df, x="城市", y="人口")
st.bar_chart(df, x="城市", y="人口")
st.area_chart(df, x="城市", y="人口")

這些指令底層走 Altair,寫起來最短,適合快速探索。要精細控制軸、顏色、工具提示,改用 Plotly 或 Altair。

Plotly(實務上很常用)

import plotly.express as px

fig = px.bar(df, x="城市", y="人口", title="人口比較")
st.plotly_chart(fig, use_container_width=True)

官方文件把 Plotly、Altair、PyDeck、Matplotlib 都列在 Chart elements

地圖

欄位名稱要是 lat / lon(或 latitude / longitude):

import pandas as pd

map_df = pd.DataFrame({"lat": [25.03], "lon": [121.56]})
st.map(map_df)

更複雜的地圖用 st.pydeck_chart()。官方 Uber 教學就是讀 pickup 資料再畫地圖。

對照影片

Excel 互動儀表板 會示範 sidebar 篩選 + Plotly 圖表 + KPI,是把本頁觀念串起來的好例子。