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

如何在R的smwrGraphs包中为Stiff图设置分组差异化颜色?

解决smwrGraphs中Stiff图分组设置不同颜色的问题

要实现给不同Stiff图设置分组颜色,需要利用stiffPlot的groups参数指定分组,再结合Stiff列表中的fill参数对应分组颜色,而非直接传入与样本数量一致的颜色向量。以下是修改后的可运行代码:

# Load required packages
require(smwrGraphs)
require(smwrData)

# prepare stiff diagram space
setSweave("stiffplot", 6, 6)
AA.lo <- setLayout(height=3.5, explanation=list(bottom=1.1))
setGraph(1, AA.lo)

# get the environmental data
data(MiscGW)

# convert to appropriate concentrations
PD <- transform(MiscGW, Ca.meq = conc2meq(Calcium, "calcium"),
                Mg.meq = conc2meq(Magnesium, "magnesium"),
                Na.meq = conc2meq(Sodium, "sodium"),
                Cl.meq = conc2meq(Chloride, "chloride"),
                SO4.meq = conc2meq(Sulfate, "sulfate"),
                HCO3.meq = conc2meq(Bicarbonate, "bicarb"))

PD$SS <- row.names(PD)
# 添加分组变量:前2个为一组,后2个为另一组
PD$group <- factor(rep(c("Group1", "Group2"), each = 2))

# Generate the plot
AA.pl <- with(PD, stiffPlot(cbind(Ca.meq, Mg.meq, Na.meq)
                            , cbind(Cl.meq, SO4.meq, HCO3.meq), ylabels=SS
                            , caption = "Stiff diagrams"
                            , groups = group # 指定分组规则
                            , Stiff= list(fill = c("#228B22", "#00688B")) # 对应分组的颜色
                            )
              )
setGraph("explanation", AA.lo)
addExplanation(AA.pl)

graphics.off()

逻辑说明

  • groups参数用于将多个Stiff图划分为不同组别,同组图会共享同一样式;
  • Stiff$fill传入的颜色向量长度需与分组数量匹配,每个颜色对应一个分组;
  • 原代码直接传入4个颜色无效,是因为stiffPlot默认将fill视为全局样式参数,而非逐个分配给每个图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 10:13:13