1. 認識 Plotly
互動式可視化簡介
歡迎來到暗黑面!今天我們將進一步提升數據可視化技能,加入一些互動元素,透過 Plotly 庫來實現。
想像一下,你舉辦了一場派對,而靜態的圖表就像是那些你已經聊過天的客人。他們很有用,但你渴望更熱絡的對話。這時 Plotly 就閃亮登場,讓你的圖表活起來,還能做出反應,甚至能讓你享受其中。借助 Plotly,你可以縮放、平移並與數據互動,這讓分析變得更直觀、更深入。
什麼是 Plotly 和它的用途
Plotly 是一個多功能庫,用於創建高交互性的圖表。當你希望你的圖表更加直觀並容易探索時,它是理想選擇。Plotly 廣泛應用於商業、科學研究等領域,提供了強大的數據可視化工具,並且可以直接在網頁瀏覽器中使用。
實際上,它在需要向關心細節的領袖們展示數據時非常有用,或者當你想要創建互動分析儀表板時。例如,在行銷領域,互動圖表可以幫助更輕鬆地分析用戶群體,而在科學領域,則可以幫助研究實驗數據。
Matplotlib 和 Plotly 的比較
現在讓我們來看看 Plotly 和 Matplotlib 的區別。Matplotlib 是一個非常好的工具,用於創建靜態和可列印的圖表,當你需要嚴格且可控的可視化時非常適合。然而,隨著互動變得越來越重要,Plotly 成為了領導者。與 Matplotlib 不同,Plotly 可以輕鬆地創建可直接嵌入網頁的互動式圖表。
這就像是比較畫冊與魔法書之間的不同。在畫冊中,你可以欣賞圖片和頁面,但在魔法書中,你可以翻頁,而每一頁故事都會在你眼前活靈活現。(這講座是在電影發明之前寫的 :)
安裝與配置 Plotly
讓我們開始操作並配置我們的環境來使用 Plotly。
安裝 Plotly: 如同大多數 Python 的神器,Plotly 可以通過 pip 安裝。打開命令行或終端,執行以下命令:
pip install plotly
導入庫: 安裝完成後,要開始繪圖,導入必要的庫:
import plotly.express as px
import plotly.graph_objects as go
其中 plotly.express
是一個簡單的 API,用於快速創建圖表,而 plotly.graph_objects
是一個更靈活的方法,用於複雜的可視化。
2. 第一個互動式圖表
創建第一個互動式圖表
現在我們已經準備好所有需要的東西,讓我們來創建我們的第一個互動式圖表。從一個簡單的例子開始——折線圖。
import plotly.express as px
import pandas as pd
# 示例數據
data = pd.DataFrame({
"日期": pd.date_range(start="2023-01-01", periods=7),
"銷售": [150, 230, 270, 300, 190, 210, 280]
})
# 創建互動式圖表
fig = px.line(data, x="日期", y="銷售", title="一週的銷售情況")
fig.show()
這段代碼將創建一個折線圖,可以進行放大、移動和探索。由於具有互動性,你可以更加專注於你感興趣的數據部分。

設置互動性
Plotly 讓你輕鬆添加互動元素。例如,你可以啟用數據選擇、縮放和平移:
fig.update_layout(
xaxis=dict(rangeslider=dict(visible=True)),
title=dict(x=0.5) # 標題居中
)
fig.show()
在這裡我們啟用了範圍滑塊(rangeslider)並將標題居中。這使你的圖表對用戶來說更靈活和方便。

3. 創建不同類型的互動式圖表
Plotly 支援多種互動式圖表類型。以下是一些示例:
散點圖
散點圖對分析兩個變量之間的相關性非常有用。
import plotly.express as px
# 圖表數據
data = {
"時間": [1, 2, 3, 4, 5, 6],
"溫度": [30, 32, 34, 33, 31, 29]
}
fig = px.scatter(data, x="時間", y="溫度", title="溫度隨時間變化")
fig.show()
直方圖
直方圖對分析數據分佈並發現異常點非常有用。
import plotly.express as px
# 圖表數據
data = {
"評分": [3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 9, 10]
}
fig = px.histogram(data, x="評分", title="評分分佈")
fig.show()
圓餅圖
圓餅圖幫助顯示分類的百分比。
import plotly.express as px
# 圖表數據
data = {
"分類": ["A", "B", "C", "D"],
"比例": [20, 30, 25, 25]
}
fig = px.pie(data, names="分類", values="比例", title="分類比例")
fig.show()

應用於實際項目
Plotly 在不同領域有很多應用場景。我們來看看幾個例子。
- 商業分析: Plotly 接口常用於創建互動式儀表板,讓用戶可以通過調整篩選器和分析參數即時探索數據。
- 科學研究: 研究人員利用 Plotly 來可視化多層次的數據,讓規律和異常更容易識別。
你還可以將 Plotly 圖表整合到 Jupyter Notebook、Web 應用程序甚至 A/B 測試中,使你的研究更易於理解和呈現。
如果你希望更深入了解,務必要查看 Plotly 官方文檔,你將找到大量示例和靈感。現在,趕快去創造你的互動傑作吧!🚀
GO TO FULL VERSION