Plotly 氣泡圖
本教程將討論使用 Plotly 的 scatter()
函式建立氣泡圖。
Python 中的 Plotly 氣泡圖
散點圖也稱為氣泡圖,將資料點顯示為圖形上的圓圈或氣泡。我們可以使用 plotly.express
的 scatter()
函式來建立氣泡圖或散點圖。
要建立散點圖或氣泡圖,我們必須在 scatter()
函式中傳遞 x 和 y 軸值。如果只給出一個軸值,該函式將使用值的索引作為第二個軸值。
例如,讓我們使用一些隨機資料建立一個氣泡圖。請參閱下面的程式碼。
import plotly.express as px
values = [2, 5, 7, 8, 3, 6]
fig = px.scatter(y=values, width=500, height=400)
fig.show()
輸出:
width
和 height
引數用於設定上圖的寬度和高度(以畫素為單位)。我們還可以使用資料框建立氣泡圖。
對於資料框,我們可以使用 data_frame
引數在 scatter()
函式內傳遞資料。我們可以使用 color
引數為每個氣泡賦予隨機顏色。
scatter()
函式將使用顏色序列來設定每個氣泡的顏色。我們可以使用 size
引數設定每個氣泡的大小,並將其值設定為整數列表。我們可以使用 hover_name
引數為每個氣泡設定懸停標題,並將其值設定為字串列表。
我們還可以使用 text
引數在每個氣泡內新增文字,並將其值設定為字串列表。我們可以使用 facet_col
引數將每個氣泡拆分到不同的圖上,將每個氣泡放在不同的圖上。
我們可以使用 orientation
引數設定繪圖的方向,並將其值設定為 h
表示水平方向,v
表示垂直方向。例如,讓我們更改上面提到的屬性。請參閱下面的程式碼。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
facet_col=labels,
)
fig.show()
輸出:
我們還可以在每個氣泡上新增誤差條,使用 error_x
表示 x 軸誤差,error_y
表示 y 軸誤差。
我們可以使用 color_discrete_sequence
更改預設顏色序列,並使用 plotly.express.color.qualitative
屬性將其值設定為 Plotly 支援的顏色序列,如 Dark24
和 Light24
。例如,讓我們改變上面氣泡圖的顏色順序。
請參閱下面的程式碼。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_sequence=px.colors.qualitative.Dark24,
)
fig.show()
輸出:
要改變顏色序列,我們需要改變上面程式碼中的顏色序列名稱,比如從 Dark24
到 Light24
。如果我們想給每個氣泡我們的顏色而不是顏色序列,我們可以使用 color_discrete_map
引數來覆蓋顏色序列。
檢查此連結以獲取有關 Plotly 顏色的更多詳細資訊。例如,讓我們更改上圖中前兩個氣泡的顏色。
請參閱下面的程式碼。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
)
fig.show()
輸出:
我們只更改了前兩種顏色,其餘顏色將來自預設顏色序列。我們可以使用 opacity
引數設定氣泡的不透明度,並將其值從 0
設定為 1
。
我們還可以使用 log_x
和 log_y
引數將軸更改為對數比例,並將其值設定為 true。我們可以使用 title
引數設定圖形的標題。
我們可以使用 marginal_x
和 marginal_y
在氣泡圖上方繪製分佈圖,以顯示點的分佈。例如,讓我們更改上面提到的屬性。
請參閱下面的程式碼。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
title="Bubble Chart",
opacity=0.7,
marginal_x="histogram",
)
fig.show()
輸出:
我們還可以使用 fig.update_traces()
函式使用 scatter()
函式跟蹤更改氣泡圖的許多其他屬性。我們可以使用 showlegend
引數隱藏圖例並將其值設定為 false。
我們可以使用 error_y_color
引數更改誤差線的顏色,預設情況下與氣泡顏色相同。我們可以使用 error_y_thickness
引數來更改誤差線的線寬。
例如,讓我們改變上面提到的痕跡。請參閱下面的程式碼。
import plotly.express as px
values = [3, 4, 5]
labels = ["a", "b", "c"]
fig = px.scatter(
y=values,
x=labels,
width=500,
height=400,
color=labels,
size=[5, 10, 15],
hover_name=["B1", "B2", "B3"],
text=["1", "2", "3"],
error_y=[1, 2, 1],
color_discrete_map={"a": "red", "b": "green"},
title="Bubble Chart",
opacity=0.7,
marginal_x="histogram",
)
fig.update_traces(showlegend=False, error_y_color="red", error_y_thickness=5)
fig.show()
輸出:
檢查此連結以獲取有關 scatter()
函式跟蹤的更多詳細資訊。