如何在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
相关产品推荐
相关产品推荐

