如何在 Python 中使用 Plotly 為每個不同的子圖應用不同的標題?
簡介
子圖建立是 Python 庫 Plotly 提供的多種資料視覺化工具之一。使用子圖可以將一個大的敘述分解成多個較小的敘述。有時,為了使主要故事更具深度和一致性,可能需要為每個子圖賦予自己的標題。
語法
透過使用 subplot_titles 引數可以自定義繪圖網格中的子圖示題,這使我們能夠為每個繪圖建立唯一的標題。make_subplots() 函式本質上是一個工廠方法,它允許我們建立一個具有指定行數和列數的繪圖網格。讓我們深入瞭解一些我們可以使用 make_subplots() 操作的關鍵引數 -
rows - 此引數指定繪圖網格中的行數。
cols - 此引數指定繪圖網格中的列數。
specs - 一個數組的陣列,描述網格中每個子圖的型別。specs 陣列中的每個元素都應包含兩個值:子圖分別跨越的行數和列數,以及子圖型別。
subplot_titles - 一個字串陣列,表示網格中每個子圖的標題。此陣列的大小應等於網格中的子圖數。
在下面的程式碼中,我們將以這種方式為每個子圖提供唯一的標題 -
fig = make_subplots(rows=1, cols=3, subplot_titles=("Subplot 1", "Subplot 2", "Subplot 3"))
示例
在編寫實際程式碼之前,請了解其演算法。
匯入必要的模組 - plotly.graph_objs 和 plotly.subplots 以及 numpy。
使用 numpy 建立一些要繪製的資料。
使用 make_subplots 函式建立一個具有 1 行 3 列的子圖網格。傳遞 subplot_titles 引數以使每個子圖具有唯一的標題。
使用 add_trace 方法將軌跡新增到每個子圖。對於每個子圖,傳遞一個包含要繪製資料的 go.Scatter 物件和一個 name 引數來標記資料。
使用 update_layout 方法為整個繪圖分配標題。
使用 update_xaxes 和 update_yaxes 方法為每個子圖的 x 軸和 y 軸分配唯一的標題。
使用 show 方法顯示繪圖。
import plotly.graph_objs as go
from plotly.subplots import make_subplots
import numpy as np
# Create data
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
# Create subplots
fig = make_subplots(rows=1, cols=3, subplot_titles=("Sin(x)", "Cos(x)",
"Tan(x)"))
# Add traces
fig.add_trace(go.Scatter(x=x, y=y1, name='Sin(x)'), row=1, col=1)
fig.add_trace(go.Scatter(x=x, y=y2, name='Cos(x)'), row=1, col=2)
fig.add_trace(go.Scatter(x=x, y=y3, name='Tan(x)'), row=1, col=3)
# Assign unique titles to each subplot
fig.update_layout(title_text="Trigonometric Functions")
fig.update_xaxes(title_text="X-axis for Sin Wave", row=1, col=1)
fig.update_xaxes(title_text="X-axis for Cos Wave", row=1, col=2)
fig.update_xaxes(title_text="X-axis Tan Wave", row=1, col=3)
fig.update_yaxes(title_text="Y-axis for Sin Wave", row=1, col=1)
fig.update_yaxes(title_text="Y-axis for Cos Wave", row=1, col=2)
fig.update_yaxes(title_text="Y-axis Tan Wave", row=1, col=3)
# Display the plot
fig.show()
首先匯入 plotly.graph_objs 和 plotly.subplots,因為這些是必需的庫。為了建立一些示例資料,我們還匯入了 numpy 庫。
然後使用 numpy 庫建立一些示例資料。我們生成的三個陣列 y1、y2 和 y3 分別表示陣列 x 的 sin、cos 和 tan 函式。接下來,使用 make_subplots() 方法建立一個具有一個行和三個列的子圖網格。
此外,將 subplot_titles 選項傳遞給一個包含三個字串的陣列,其值為“Sin(x)”、“Cos(x)”和“Tan(x)”。這將確定每個網格子圖的標題。
建立子圖網格後,使用 add_trace() 函式為每個子圖提供一個軌跡。為三個 y1、y2 和 y3 陣列中的每一個新增一個 Scatter 軌跡。對於三個軌跡,我們還分別提供 name 引數作為“Sin(x)”、“Cos(x)”和“Tan(x)”。透過使用 add_trace() 方法的 row 和 col 引數,我們可以定義每個軌跡的子圖。
然後使用 update_layout() 方法將繪圖的通用標題更改為“三角函式”。
現在使用 update_xaxes() 和 update_yaxes() 方法設定每個子圖的 x 軸和 y 軸標題,以使每個子圖具有特殊的標題。為了指示我們希望更新的子圖,我們提供 row 和 col 引數。我們還傳遞 title_text 引數來設定 x 軸或 y 軸的標題。
最後,使用 show() 方法顯示繪圖。
結論
Plotly 的 make subplots() 函式提供了一種實用的方法來製作子圖網格。透過使用 subplot_titles 引數,網格中的每個子圖都可以具有不同的標題。除此之外,update xaxes() 和 update yaxes() 例程允許我們更改每個子圖的 x 軸和 y 軸的名稱。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP