使用 Plotly 在 Python 中建立折線圖
Plotly 是一個互動式的開源工具包,使使用者能夠在 Python 的資料視覺化領域構建各種美觀且智慧的圖表。本文的主題是折線圖,這是最流行的圖表形式之一。為了幫助您理解,我們將介紹如何使用 Plotly 建立折線圖,並結合實際示例。
儘管我們將主要關注折線圖,但請記住,Plotly 是一個靈活的庫,支援各種其他圖表樣式,提供了無數的機會來使用資料講述引人入勝的故事。
Plotly 簡要概述
功能強大的 Plotly 模組支援 Python 互動式和基於瀏覽器的圖表生成。您可以建立使用者可以輕鬆互動的複雜圖表,從而實現更深入的資料探索體驗。
使用 Plotly 在 Python 中建立折線圖
折線圖,也稱為線形圖,可以沿著數軸顯示資料。讓我們開始使用 Plotly 在 Python 中建立折線圖。
Plotly 安裝
如果尚未安裝 Plotly,請使用下面的 pip 命令安裝:
pip install plotly
建立基本折線圖
透過匯入 Plotly Express 模組並使用 line() 函式(接受多種形式的資料,例如 Pandas DataFrame 或陣列列表),您可以建立 Plotly 的基本折線圖。
使用 Plotly 的折線圖實際示例
讓我們繼續介紹一些使用 Plotly 建立折線圖的實際示例。
示例 1:基本折線圖
我們將首先建立一個簡單的折線圖來顯示股票價格在五天內的增長——
import plotly.express as px
# Data
days = range(1, 6)
stock_price = [100, 105, 98, 105, 110]
# Create a line chart
fig = px.line(x=days, y=stock_price, labels={'x':'Days', 'y':'Stock Price'})
# Show the plot
fig.show()
在這個示例中,我們將建立一個簡單的折線圖,其中 y 軸表示股票價格,x 軸表示天數。
示例 2:多條折線圖
讓我們擴充套件我們的示例,並比較兩家不同公司的股票價格增長——
import plotly.express as px
# Data
days = range(1, 6)
company_A_stock = [100, 105, 98, 105, 110]
company_B_stock = [95, 102, 95, 102, 108]
# Create a line chart
fig = px.line(x=days, y=company_A_stock, labels={'x':'Days', 'y':'Stock Price'})
fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0])
# Show the plot
fig.show()
此程式碼使用 add_trace() 將第二條線新增到圖表中。
示例 3:自定義折線圖
使用 Plotly 可以透過多種方式自定義折線圖。讓我們修改前面示例中的折線圖:
import plotly.express as px
# Data
days = range(1, 6)
company_A_stock = [100, 105, 98, 105, 110]
company_B_stock = [95, 102, 95, 102, 108]
# Create a line chart
fig = px.line(x=days, y=company_A_stock, labels={'x':''Days', 'y':'Stock Price'}, title='Stock Price Comparison')
fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0])
# Customize chart
fig.update_layout(
autosize=False,
width=500,
height=500,
margin=dict(
l=50,
r=50,
b=100,
t=100,
pad=4
),
paper_bgcolor="LightSteelBlue",
)
# Add custom names to traces
fig.data[0].name = "Company A"
fig.data[1].name = "Company B"
# Show the plot
fig.show()
上述示例使用 update_layout() 函式修改了繪圖大小、邊距和背景顏色。資料[ ] 的 name 元素用於自定義軌跡(線)的名稱。
示例 4:帶有懸停資料的互動式折線圖
Plotly 的互動性是其強大的功能。為了增強互動性,使用者可以使用該庫自定義懸停資訊:
import plotly.express as px
# Data
days = range(1, 6)
company_A_stock = [100, 105, 98, 105, 110]
company_B_stock = [95, 102, 95, 102, 108]
# Create a line chart
fig = px.line(title='Stock Price Comparison')
fig.add_trace(px.line(x=days, y=company_A_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0])
fig.add_trace(px.line(x=days, y=company_B_stock, labels={'x':'Days', 'y':'Stock Price'}).data[0])
# Add custom hover data
fig.data[0].name = "Company A"
fig.data[0].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>"
fig.data[1].name = "Company B"
fig.data[1].hovertemplate = "Day: %{x}<br>Stock Price: %{y}<extra></extra>"
# Show the plot
fig.show()
在本例中,懸停資料使用 hovertemplate 進行自定義。x 和 y 的值由佔位符 %x 和 %y 表示。extra> 元素從懸停資訊中刪除了軌跡名稱。
結論
折線圖是資料視覺化的重要工具,Plotly 提供了一個很好的平臺,可以快速輕鬆地建立和自定義這些圖表。雖然我們只是觸及了 Plotly 和折線圖功能的皮毛,但我們希望這些示例能為您開始建立自己的視覺化提供堅實的基礎。
始終記住,掌握資料視覺化不僅僅是理解庫的語法或指令,還包括知道哪種型別的圖最適合給定的資料集。因此,請繼續嘗試 Plotly 中提供的各種圖表型別,並不斷磨練您的資料視覺化技巧。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP