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

如何在ropls包的PLS分析中更改得分图的颜色?

在R语言ropls包的PLS分析中修改得分图颜色的方法

ropls包的plot()函数提供了两个核心参数来控制得分图的颜色,可根据数据类型(连续/分类)选择不同方式:

1. 针对连续型响应变量(如示例中的BMI)

当y是连续变量时,parPaletteVc参数可传入颜色向量,生成对应变量数值高低的渐变配色:

library(ropls)
data(sacurine)

# 拟合PLS模型(y为连续的BMI)
sacurine.pls <- opls(x = sacurine$dataMatrix, y = sacurine$sampleMetadata[, 'bmi'], orthoI = 0)

# 用红-白-蓝渐变配色绘制得分图
plot(sacurine.pls, typeVc = "x-score", parPaletteVc = c("red", "white", "blue"))

你可以替换颜色向量为任意需要的渐变区间,比如c("#2E86AB", "#F2F2F2", "#D83A56")来使用自定义冷暖渐变。

2. 针对分类型响应变量(如分组样本)

如果y是分类变量(如性别、组别),有两种设置颜色的方式:

方法1:用parPaletteVc指定分组配色

直接传入与分组数量匹配的颜色向量,函数会按分组顺序自动分配颜色:

# 拟合以性别为响应变量的PLS模型
sacurine.pls.group <- opls(x = sacurine$dataMatrix, 
                           y = sacurine$sampleMetadata[, 'gender'], 
                           orthoI = 0)

# 给男女两组分别设置珊瑚色和蓝绿色
plot(sacurine.pls.group, typeVc = "x-score", parPaletteVc = c("#FF6B6B", "#4ECDC4"))

方法2:用parColVc手动指定每个样本的颜色

若需要更精细的控制(比如部分样本单独着色),可生成与样本数量一致的颜色向量,通过parColVc传入:

# 根据性别生成每个样本的颜色向量
gender_col <- ifelse(sacurine$sampleMetadata[, 'gender'] == "Male", "#FF6B6B", "#4ECDC4")

# 绘制得分图
plot(sacurine.pls.group, typeVc = "x-score", parColVc = gender_col)

额外提示

  • 颜色支持多种格式:内置颜色名称(如"red")、十六进制颜色码(推荐,颜色更精准)、R内置调色板(如rainbow(3)、viridis::viridis(5))。
  • parColVc的优先级高于parPaletteVc,若同时设置,会以parColVc的颜色为准。

内容的提问来源于stack exchange,提问作者m-peter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:53:15