0

0

如何在 Plotly 中为 3D 散点图自定义颜色与标记形状

碧海醫心

碧海醫心

发布时间:2026-01-24 15:22:13

|

489人浏览过

|

来源于php中文网

原创

如何在 Plotly 中为 3D 散点图自定义颜色与标记形状

本文详解如何使用 `go.scatter3d` 的 `marker` 参数(而非独立的 `color` 或 `markers` 参数)精确控制新增 3d 数据点的颜色、形状、大小等视觉属性,并纠正常见参数误用。

在 Plotly 中,向已有的 3D 图形(如由 plotly.express.scatter_3d 创建的图表)添加新数据轨迹时,必须使用 go.Scatter3d 类,并通过其 嵌套的 marker 字典统一配置视觉样式——这是关键前提。直接传入 color='black' 或 markers='s' 会报错,因为 Scatter3d 不接受这些顶层参数;正确做法是将所有标记属性封装在 marker=dict(...) 中。

以下是完整、可运行的示例代码:

import plotly.express as px
import plotly.graph_objects as go
import pandas as pd

# 示例数据
df = pd.DataFrame({'x': [1, 2, 3], 'y': [0, 1, 2], 'z': [1, 1, 1]})
df2 = pd.DataFrame({'x': [4, 5], 'y': [3, 4], 'z': [2, 2]})

# 创建基础 3D 散点图
fig = px.scatter_3d(df, x='x', y='y', z='z', title="3D Scatter with Custom Markers")

# 添加第二组数据:自定义黑色方块标记
fig.add_trace(
    go.Scatter3d(
        x=df2["x"],
        y=df2["y"],
        z=df2["z"],
        mode='markers',
        marker=dict(
            color='black',           # 支持颜色名、HEX、RGB、RGBA 或数值数组(用于映射)
            symbol='square',         # 常用值:'circle', 'square', 'diamond', 'cross', 'x', 'triangle-up' 等
            size=8,                  # 可选:统一大小(像素)
            line=dict(width=1, color='white')  # 可选:标记边框
        )
    )
)

fig.show()

⚠️ 注意事项:

SpeechEasy
SpeechEasy

SpeechEasy是一种合成语音解决方案,可以让用户从文本生成高质量、易于理解的音频。

下载
  • symbol 参数不支持简写(如 's'),必须使用完整字符串(如 'square');
  • 若需为每个点指定不同颜色,可传入列表或 NumPy 数组(如 color=[0.2, 0.5, 0.9]),并配合 colorscale 和 cmin/cmax 实现色标映射;
  • go.scatter3d(小写)不是合法类名,Plotly 中唯一正确的类是 go.Scatter3d(首字母大写);
  • mode='markers' 是必需的,否则即使设置了 marker 也不会渲染点;
  • 所有 marker 子属性均支持响应式更新(例如在回调中动态修改)。

掌握 marker=dict(...) 这一统一入口,即可灵活组合颜色、形状、大小、透明度(opacity)、边框等,实现高度定制化的 3D 可视化效果。

相关专题

更多
js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

278

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

212

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1492

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

622

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

572

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

566

2024.04.29

go语言字符串相关教程
go语言字符串相关教程

本专题整合了go语言字符串相关教程,阅读专题下面的文章了解更多详细内容。

166

2025.07.29

c++字符串相关教程
c++字符串相关教程

本专题整合了c++字符串相关教程,阅读专题下面的文章了解更多详细内容。

82

2025.08.07

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

25

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go 教程
Go 教程

共32课时 | 4.1万人学习

Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号