資料與圖表
資料 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):
更複雜的地圖用 st.pydeck_chart()。官方 Uber 教學就是讀 pickup 資料再畫地圖。
對照影片
Excel 互動儀表板 會示範 sidebar 篩選 + Plotly 圖表 + KPI,是把本頁觀念串起來的好例子。