R语言bwplot绘图优化求助:箱线图颜色与标签可读性问题
R语言bwplot绘图问题解决方法
问题1:箱线图出现两种颜色的异常
箱线图出现两种颜色,是因为r2是包含Ymis和Yobs两个水平的因子变量,bwplot默认会按这个变量分组分配颜色。要统一箱线图颜色,可通过以下方式修改:
方案:强制统一箱线元素颜色
在par.settings中指定箱线各组成部分的颜色,覆盖默认的分组上色逻辑:
tp <- bwplot(r2~y2|typ, data=d, horizontal=TRUE, layout=c(1,10), xlab=expression(Y[2]), strip=FALSE, xlim=c(0,10), par.strip.text = list(cex=0.8), par.settings = list( layout.heights=list(strip=5), # 统一箱线矩形、须线、点的颜色 box.rectangle=list(col=mdc(2)), box.umbrella=list(col=mdc(2)), plot.symbol=list(col=mdc(2)) ), scales = list(y = list(cex = 0.8)), strip.left = strip.custom(bg="grey95"))
如果不需要区分r2的分组差异,也可以直接修改公式为~y2|typ,取消分组:
tp <- bwplot(~y2|typ, data=d, horizontal=TRUE, layout=c(1,10), xlab=expression(Y[2]), col=mdc(2), strip=FALSE, xlim=c(0,10), par.strip.text = list(cex=0.8), par.settings = list(layout.heights=list(strip=5)), scales = list(y = list(cex = 0.8)), strip.left = strip.custom(bg="grey95"))
问题2:提升分面名称(typ列)的可读性
要增加左侧分面宽度、提升名称可读性,需调整分面文本字号和分面宽度:
tp <- bwplot(r2~y2|typ, data=d, horizontal=TRUE, layout=c(1,10), xlab=expression(Y[2]), strip=FALSE, xlim=c(0,10), par.strip.text = list(cex=0.8), # 调大分面文本字号 par.settings = list( layout.heights=list(strip=5), layout.widths=list(strip.left=2), # 增加左侧分面宽度 box.rectangle=list(col=mdc(2)), box.umbrella=list(col=mdc(2)) ), scales = list(y = list(cex = 0.8)), strip.left = strip.custom(bg="grey95")) # 输出图形 print(tp)
补充说明
- 若分面文本仍显示不全,可继续增大
strip.left的宽度值(如改为3),或在输出图形时设置更大的画布宽度(比如用pdf("plot.pdf", width=12)) - 确保
mdc()函数对应的包已加载(比如mosaic包)
内容的提问来源于stack exchange,提问作者Ibrahima
相关产品推荐
相关产品推荐

