R语言绘图标题居中求助:解决expression与bquote排版问题
R语言绘图标题居中且行间距可调的解决方案
针对你遇到的标题排版问题,这里提供几种实用的解决方法:
方法1:调整原expression方案的对齐方式
原代码中标题靠右是因为expression内的换行导致默认对齐偏移,只需给title()添加adj=0.5参数即可强制居中,同时保持原有行间距:
area01 <- 122.8 parea01 <- 36.1 text02 <- eval(substitute(expression("L (2510-3410 masl):\n"~a*" "*km^2*"("*s*"%)"), list(a=area01, s=parea01))) plot(1,1) title(text02, adj=0.5)
方法2:用mtext分两行控制行间距
通过mtext()分别添加两行标题,可灵活调整每行的垂直位置(line参数),精准控制行间距:
area01 <- 122.8 parea01 <- 36.1 plot(1,1) # 第一行标题,line值越大位置越靠上 mtext(expression("L (2510-3410 masl):"), line=3, adj=0.5) # 第二行标题,line值比第一行小,差值决定行间距 mtext(substitute(expression(a*" "*km^2*"("*s*"%)"), list(a=area01, s=parea01)), line=2.2, adj=0.5)
你可以根据需求修改line的数值,差值越小行间距越窄。
方法3:改进bquote+atop方案的行间距
通过设置par(lheight)调整全局行高,缩小atop生成的两行文本间距:
area01 <- 122.8 parea01 <- 36.1 # 临时设置行高为0.8(默认是1,值越小行间距越窄) par(lheight=0.8) text02 <- bquote(bold(atop("L (2510-3410 masl):", .(area01)~km^2~"("~.(parea01)~"%)"))) plot(1,1) title(text02) # 恢复默认行高,避免影响后续绘图 par(lheight=1)
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

