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

自定义mixOmics包载荷图:调整条形顺序与颜色

调整mixOmics plotLoadings的条形顺序和填充颜色

要实现自定义条形顺序和指定颜色,你可以利用plotLoadings()返回ggplot对象的特性,结合ggplot的刻度和填充调整函数来完成:

核心思路

  • 调整条形顺序:通过scale_y_discrete(limits = ...)指定变量的显示顺序,强制ggplot按照你定义的顺序排列条形。
  • 设置填充颜色:用scale_fill_manual(values = ...)建立变量名到颜色的映射,精准指定每个变量的条形颜色。

完整代码实现

if(!require(mixOmics)) install.packages("mixOmics", repos = "http://cran.us.r-project.org")
suppressWarnings(library(mixOmics, verbose = FALSE))

data(iris)

# 准备数据
X <- iris[, 1:4]  # 预测变量
Y <- iris$Species  # 响应变量

# 执行PLSDA分析
plsd <- plsda(X, Y, ncomp = 2)  # 设置2个主成分

# 生成初始载荷图并保存为ggplot对象
p <- plotLoadings(plsd, comps = 1, main = "PLSDA Loadings")

# 定义自定义的变量顺序和颜色映射
var_order <- c("Petal.Width", "Petal.Length", "Sepal.Width", "Sepal.Length")
color_mapping <- c(
  "Petal.Width" = "blue",
  "Petal.Length" = "green",
  "Sepal.Width" = "blue",
  "Sepal.Length" = "green"
)

# 调整顺序和颜色并绘图
p +
  scale_y_discrete(limits = var_order) +
  scale_fill_manual(values = color_mapping)

关键说明

  1. scale_y_discrete(limits = var_order):limits参数会强制y轴(变量名)按照传入的向量顺序排列,条形的顺序会随之同步改变。
  2. scale_fill_manual(values = color_mapping):通过命名向量建立变量与颜色的一一对应关系,确保指定变量使用目标颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 20:22:31