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

R语言设置颜色参数后散点图为空的问题求助

问题修复方案

一、散点图加色后空白的解决

你在pairs()里写的col = my_cols["type"]是错误的:my_cols是无命名的颜色向量,而"type"是字符串类别(比如"Acoustic"),用字符串索引无命名向量只会返回NA,所有点颜色失效就成了空白。

改法很简单,先把type转成因子(自动把三个类别对应成1、2、3的整数),再用这个整数去索引颜色向量:

df <- porpoise[,c("bft", "swell", "depth", "dist", "boats", "type")]
my_cols <- c("#00AFBB", "#E7B800", "#FC4E07") 

# 把type转为因子,让类别对应整数索引
df$type <- factor(df$type)
pairs(df[,1:5], pch = 19,  cex = 0.5,
      col = my_cols[df$type],  # 用因子对应的整数取颜色
      lower.panel=NULL)

二、NA警告的解决

as.numeric(detection_type)直接转字符串类别会出NA,因为"Acoustic"这类字符串没法直接变成数字。得先把字符串转成因子,再转数字:

df2 <- df[,-6]
detection_type <- df[,6]
library(colorspace)

# 先转因子再转数字,避免NA
det_col <- rev(rainbow_hcl(3))[as.numeric(factor(detection_type))]

可选优化

如果想指定哪个类别对应哪个颜色,手动设置因子水平就行:

# 按你需要的顺序指定类别,对应颜色向量的位置
df$type <- factor(df$type, levels = c("Acoustic", "Visual", "Both"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:54:14