如何在 Plotly-Python 中將圖例放置在繪圖內部?
資料視覺化是一個強大的工具,它使我們能夠更好地理解資訊示例、模式和知識點。Plotly-Python是一個靈活且直觀的繪相簿,它使資料科學家、分析師和專家能夠建立視覺上吸引人且互動式的繪圖。
任何繪圖的關鍵組成部分之一是圖例,它在幫助檢視者理解資料和識別視覺化中存在的不同元件方面發揮著重要作用。預設情況下,Plotly 將圖例放置在繪圖區域之外,通常位於右側。
雖然這種佈置在許多情況下是合適的,但在某些情況下,將圖例放置在繪圖內部可以顯著改善視覺美觀、節省寶貴的空間並增強整體使用者體驗。在本完整指南中,我們將深入探討使用 Plotly-Python 將圖例放置在繪圖內部的不同方法。
瞭解 Plotly-Python 中的圖例
在我們深入探討將圖例移至繪圖內部之前,讓我們先了解一下 Plotly-Python 中的圖例的作用。圖例就像小型地圖,可以幫助我們解釋繪圖。當我們向繪圖中新增多個軌跡(資料序列)時,它們會自動出現。每個軌跡都會獲得一個標籤,這些標籤會顯示在圖例中,以便我們知道每個軌跡代表什麼。
預設情況下,Plotly 將圖例放置在繪圖外部,通常位於右側。這通常效果很好,但有時它會導致繪圖看起來很擁擠,尤其是在我們有多個軌跡或一個小繪圖時。將圖例放置在繪圖內部可以使其看起來更整潔和更專業。
將圖例放置在繪圖內部
現在,讓我們瞭解一下如何使用 Plotly-Python 將圖例放置在繪圖內部。有兩種主要方法可以做到這一點
使用 layout.legend 屬性
要將圖例放置在繪圖內部,我們可以使用 layout.legend 屬性並設定 x 和 y 座標。x 方向控制水平位置,y 控制垂直位置。x 和 y 的值範圍從 0 到 1。例如,(0, 0) 是繪圖的左下角,(1, 1) 是右上角。
示例
這是一個程式碼示例,可以幫助我們設定圖例在繪圖內部的位置
在此示例中,我們設定 x=0.5 和 y=0.9,這意味著圖例將放置在繪圖中心點略下方。您可以根據具體情況更改座標,以找到適合您繪圖的最佳位置。
import plotly.graph_objects as go # Test information x_values = [1, 2, 3, 4, 5] y_values1 = [2, 4, 1, 5, 3] y_values2 = [1, 3, 2, 4, 5] # Create traces trace1 = go.Scatter(x=x_values, y=y_values1, name='Trace 1', mode='markers') trace2 = go.Scatter(x=x_values, y=y_values2, name='Trace 2', mode='lines') # Create the figure fig = go.Figure([trace1, trace2]) # Update the design to put the legend inside the plot fig.update_layout(legend=dict(x=0.5, y=0.9)) # Change x and y facilitates on a case-by-case basis # Show the plot fig.show()
輸出

使用自動調整大小的圖例定位
有時,手動設定 x 和 y 座標可能並不理想,尤其是在處理不同繪圖大小或資料時。Plotly 為我們提供了另一個選擇——使用圖例位置的自動調整大小。我們可以透過將 xanchor 和 yanchor 屬性與 x 和 y 結合使用來實現。
示例
在此示例中,我們將 x 設定為 0,將 y 設定為 1,以將圖例放置在繪圖的左上角。透過使用 xanchor='left' 和 yanchor='top',圖例會根據繪圖的大小自動調整。
import plotly.graph_objects as go # Test information x_values = [1, 2, 3, 4, 5] y_values1 = [2, 4, 1, 5, 3] y_values2 = [1, 3, 2, 4, 5] # Create traces trace1 = go.Scatter(x=x_values, y=y_values1, name='Trace 1', mode='markers') trace2 = go.Scatter(x=x_values, y=y_values2, name='Trace 2', mode='lines') # Create the figure fig = go.Figure([trace1, trace2]) # Update the design for auto-measuring legend position and left-top anchor fig.update_layout(legend=dict(x=0, y=1, xanchor='left', yanchor='top')) # Show the plot fig.show()
輸出

子圖中的圖例
如果您使用的是子圖(單個圖形中的多個繪圖),您可能希望專門將圖例放置在每個子圖中。Plotly 使這變得非常容易!
這是一個關於如何在子圖中放置圖例的示例
示例
在此示例中,我們使用 make_subplots() 建立了一個 2x1 的子圖網格。我們使用 add_trace() 將軌跡新增到每個子圖中。為了將圖例放置在每個子圖中,我們使用了 legend=dict(x=0.5, y=-0.2, xanchor='center', yanchor='top')。此外,legend_orientation='h' 用於在子圖內以水平方式顯示圖例。
import plotly.graph_objects as go
from plotly.subplots import make_subplots
# Test information
x_values = [1, 2, 3, 4, 5]
y_values1 = [2, 4, 1, 5, 3]
y_values2 = [1, 3, 2, 4, 5]
# Make subplots with two rows and one column
fig = make_subplots(rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.1)
# Add traces to the subplots
fig.add_trace(go.Scatter(x=x_values, y=y_values1, name='Trace 1', mode='markers'), row=1, col=1)
fig.add_trace(go.Scatter(x=x_values, y=y_values2, name='Trace 2', mode='lines'), row=2, col=1)
# Update the design to put legends inside subplots and align them horizontally
fig.update_layout(
legend=dict(x=0.5, y=-0.2, xanchor='center', yanchor='top'), # Adjust y to move legend inside subplot
legend_orientation='h'
)
# Update axis titles
fig.update_xaxes(title_text='X Values', row=2, col=1)
fig.update_yaxes(title_text='Y Values', row=1, col=1)
fig.update_yaxes(title_text='Y Values', row=2, col=1)
# Show the plot
fig.show()
輸出

結論
讀者將獲得對使用 Plotly-Python 在繪圖中放置圖例的全面理解,從而能夠建立視覺上吸引人和有用的資料視覺化。
總而言之,本關於如何在 Plotly-Python 中在繪圖中放置圖例的全面指南將為資料愛好者提供建立令人驚歎且互動式視覺化的知識和技能。透過掌握自定義圖例位置和利用高階自定義,讀者可以提升他們的資料視覺化能力,並透過視覺敘事真正傳達見解。
請記住,您可以使用 layout.legend 屬性或 xanchor 和 yanchor 的自動調整大小技術將圖例放置在繪圖中。如果您使用的是子圖,則可以專門將圖例放置在每個子圖中。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP