使用 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 中提供的各種圖表型別,並不斷磨練您的資料視覺化技巧。

更新於:2023年7月18日

414 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.