Plotly 3D 散點圖

Ammar Ali 2024年2月15日
  1. 在 Python 中使用 Plotly 的 scatter_3d() 函式建立 3D 散點圖
  2. 在 Python 中更改 3D 散點圖的顏色和軌跡
Plotly 3D 散點圖

本教程將討論在 Python 中使用 Plotly 的 scatter_3d() 函式建立 3D 散點圖。

在 Python 中使用 Plotly 的 scatter_3d() 函式建立 3D 散點圖

散點圖將資料點顯示為圖形上的圓圈或氣泡。要建立 3D 散點圖,我們可以使用 plotly.expressscatter_3d() 函式。

要建立 3D 散點圖,我們必須在 scatter_3d() 函式中傳遞 x、y 和 z 軸值。如果只給出一個軸值,該函式將使用這些值的索引作為第二個和第三個軸值。

例如,讓我們使用 Plotly 中已經存在的 iris 資料集建立一個 3D 散點圖。請參閱下面的程式碼。

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(
    df, x="sepal_length", y="sepal_width", z="petal_width", color="species"
)
fig.show()

輸出:

iris 資料集的 3d 散點圖

widthheight 引數用於設定上圖的寬度和高度(以畫素為單位)。我們還可以使用資料框建立 3D 散點圖。

對於資料框,我們可以使用 data_frame 引數在 scatter_3d() 函式內傳遞資料。我們可以使用 color 引數為每​​個氣泡賦予隨機顏色。

scatter_3d() 函式將使用顏色序列來設定每個氣泡的顏色。我們可以使用 size 引數設定每個氣泡的大小,並將其值設定為整數列表或資料框列。

我們可以使用 hover_name 引數為每​​個氣泡設定懸停標題,並將其值設定為字串列表或資料框列。

我們還可以使用 text 引數在每個氣泡內新增文字,並將其值設定為字串列表或資料框列。

例如,讓我們更改上面提到的屬性。請參閱下面的程式碼。

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(
    df,
    x="sepal_length",
    y="sepal_width",
    z="petal_width",
    color="species",
    size="sepal_width",
    hover_name="species",
)
fig.show()

輸出:

改變 3d 散點圖的屬性 1

在 Python 中更改 3D 散點圖的顏色和軌跡

我們還可以在每個氣泡上新增誤差條,使用 error_x 表示 x 軸誤差,error_y 表示 y 軸誤差,error_z 表示 z 軸誤差。

我們可以使用 color_discrete_sequence 更改預設顏色序列,並使用 plotly.express.color.qualitative 屬性將其值設定為 Plotly 支援的顏色序列,如 Dark24Light24

例如,讓我們更改上述 3D 散點圖的顏色順序。請參閱下面的程式碼。

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(
    df,
    x="sepal_length",
    y="sepal_width",
    z="petal_width",
    color="species",
    size="sepal_width",
    error_z="petal_width",
    color_discrete_sequence=px.colors.qualitative.Dark24,
)
fig.show()

輸出:

改變 3d 散點圖的顏色序列

要改變顏色序列,我們需要改變上面程式碼中的顏色序列名稱,比如從 Dark24Light24。如果我們想給每個氣泡我們的顏色而不是顏色序列,我們可以使用 color_discrete_map 引數來覆蓋顏色序列。

檢查此連結以獲取有關 Plotly 顏色的更多詳細資訊。

例如,讓我們更改上圖中出現的前兩個氣泡序列的顏色。請參閱下面的程式碼。

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(
    df,
    x="sepal_length",
    y="sepal_width",
    z="petal_width",
    color="species",
    color_discrete_map={"setosa": "red", "versicolor": "green"},
)
fig.show()

輸出:

在 3d 散點圖中改變一組氣泡的顏色

我們只更改了前兩種顏色,其餘顏色將來自預設顏色序列。我們可以使用 opacity 引數設定氣泡的不透明度,並將其值設定為 0 到 1。

我們還可以使用 log_xlog_ylog_z 引數將軸更改為對數刻度,並將其值設定為 true。我們可以使用 title 引數設定圖形的標題。

我們還可以使用 scatter_3d() 函式更改 3D 散點圖的許多其他屬性,並使用 fig.update_traces() 函式更改軌跡。我們可以使用 showlegend 引數隱藏圖例並將其值設定為 false。

我們可以使用 error_y_color 引數更改誤差線的顏色,預設情況下與氣泡顏色相同。

例如,讓我們改變上面提到的痕跡。請參閱下面的程式碼。

import plotly.express as px

df = px.data.iris()
fig = px.scatter_3d(
    df,
    x="sepal_length",
    y="sepal_width",
    z="petal_width",
    color="species",
    error_z="petal_width",
)
fig.update_traces(showlegend=False, error_z_color="red")
fig.show()

輸出:

改變 3d 散點圖的痕跡

檢查此連結以獲取有關 scatter_3d() 函式跟蹤的更多詳細資訊。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相關文章 - Plotly Plot