You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言3D散点图如何根据分类字符串或数值定义标记颜色

R使用plot3D绘制按分类变量自定义颜色的3D散点图

你需要先将分类变量统一转为因子类型,再建立分类取值到自定义颜色的映射,最后将映射后的颜色向量传入scatter3D函数即可实现需求。

注意:你原有代码中使用的color参数不是scatter3D的标准参数,设置点颜色需使用col参数。

场景1:分类变量为字符串类型(取值为cancer/control)

# 加载依赖包
library("plot3D")

# 1. 将字符串分类变量转为因子
category <- as.factor(category)
# 2. 自定义颜色映射,可按需替换为你想要的颜色值
color_map <- c("cancer" = "red", "control" = "blue")
# 3. 生成每个样本点对应的颜色向量
point_color <- color_map[as.character(category)]

# 4. 绘制3D散点图
scatter3D(pcr$PC1, pcr$PC2, pcr$PC3, 
          col = point_color,
          colkey = FALSE, # 关闭默认的连续色条
          pch = 16) # 设置点为实心圆形样式

# 可选:添加分组图例
legend("topright",
       legend = names(color_map),
       col = color_map,
       pch = 16,
       title = "分组")

场景2:分类变量为数值类型(取值为0/1)

# 加载依赖包
library("plot3D")

# 1. 将数值分类变量转为因子
category <- as.factor(category)
# 2. 自定义颜色映射,0对应control组蓝色,1对应cancer组红色,可按需修改
color_map <- c("0" = "blue", "1" = "red")
# 3. 生成每个样本点对应的颜色向量
point_color <- color_map[as.character(category)]

# 4. 绘制3D散点图
scatter3D(pcr$PC1, pcr$PC2, pcr$PC3, 
          col = point_color,
          colkey = FALSE,
          pch = 16)

# 可选:添加分组图例
legend("topright",
       legend = c("control", "cancer"),
       col = color_map,
       pch = 16,
       title = "分组")

如果分类数量超过2类,只需在color_map中新增对应分类的颜色映射规则即可,也可以使用RColorBrewer、viridis等包的预设调色板快速生成适配多分类的配色。

内容的提问来源于stack exchange,提问作者mahsa nemati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:06:05