我們在昨天的冒險中打造了 Mario Dashboard 雛型,今天要挑戰的是提升它的使用者體驗:加入版面區塊、分頁元素,以及延伸下載檔案的小變化,讓操作更直覺、資訊更清晰。
深入探索遊樂場
Step 1:優化版面架構
利用st.tabs
分頁元素,將版面分為「多景點綜覽」、「單景點詳情」,並於單景點詳情區版面呈現上利用 st.columns
將排版優化。
tab_overview, tab_detail = st.tabs([" 👉 多景點綜覽", " 👉 單景點詳情"])
with tab_overview:
st.write("#### 🗺️ 多景點綜覽")
with tab_detail:
st.write("#### 🗺️ 單景點詳情")
# --------------------------
# 上半部:三張圖水平排列
# --------------------------
col1, col2, col3 = st.columns([1,1,1])
CHART_HEIGHT = 400 # 統一高度
with col1:
st.write("##### 📡 特色雷達圖")
with col2:
st.write("##### 📖 熱門關鍵字")
with col3:
st.write("##### ☁️ 關鍵文字雲")
# --------------------------
# 下半部:智慧摘要 + PDF下載
# --------------------------
st.write("##### 🎯 智慧摘要")
Step 2:特色雷達圖
為了呈現當地的旅遊特色,依照關鍵字將其分成五個面向:自然景觀、宗教文化、歷史建築、野生動物與戶外探險,依正向評論比例生成雷達圖。
結合 Plotly
互動功能,使用者可滑鼠懸停查看各面向分數,即時理解景點在不同面向的表現。
"自然景觀": ["lake","lakeside","boating","view","pokhara","annapurna","everest"],
"宗教文化": ["temple","buddha","lord","shiva","pashupatinath","gautam","stupa","heritage"],
"歷史建築": ["square","durbar","historical","bhaktapur","kathmandu","valley"],
"野生動物與自然公園": ["park","national","safari","animals","chitwan","bardiya","jungle"],
"戶外探險": ["trekking","trek","camp","experience","base","langtang","icefall","ebc"]
Step 3:關鍵文字雲
與昨天的詞頻圖概念相似,透過評論資料計算詞頻,動態生成文字雲。使用者能一眼看出 最受歡迎或常被提及的詞彙,直觀呈現評論重點。
Step 4:智慧摘要
依照景點的好評度分度,簡單的為景點的推薦程度下個小結論。
並在單景點詳情區添加了下載PDF的小功能,透過暫存方式將圖表輸出為圖片,方便下載成檔案與分享。
成果呈現
對比原本陽春的雛形:
統計摘要、情緒氣泡圖、情緒統計表、熱門關鍵字(單景點)
升級後的 Mario Dashboard的架構呈現上:
🗺️ 多景點綜覽:
統計摘要、情緒統計表、情緒氣泡圖、智慧摘要
🗺️ 單景點詳情:
特色雷達圖、熱門關鍵字、關鍵文字雲、智慧摘要、下載報告
下載下來的PDF報告,排版上讓它呈現一頁式快照風格
今天解鎖的新技能:
🍄 Streamlit 版面優化:多景點與單景點區分明確,提升使用者體驗
🍄 動態互動圖表暫存處理:方便嵌入 PDF 報告輸出
🍄 智慧摘要結合好評比例與關鍵字,提升決策參考價值
📓 小結:
今天,我們把 Mario Dashboard 的介面升級為「多景點綜覽 + 單景點詳情」雙層結構,加入 特色雷達圖、關鍵文字雲、智慧摘要與 PDF 下載功能,不僅讓資料展示更完整,也讓使用者能即時互動、快速理解景點評論分析。
下一步,我們將嘗試讓它化身為聰明的旅遊助理,依據使用者喜好推薦景點或行程,把資料遊樂場升級為 智慧旅遊互動平台。