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