如何在R的forestplot中仅将第二列的r设为斜体?
实现forestplot第二列仅
r斜体的方法 当然可以实现这个需求!核心思路是将第二列的文本转换为R表达式(expression),通过表达式单独控制r的字体样式,数字部分保持正常格式。以下是修改后的完整代码及说明:
修改后的代码
library("forestplot") data(HRQoL) # 定义颜色样式 clrs <- fpColors(box="royalblue", line="darkblue", summary="royalblue") # 生成带样式的第二列文本:用bquote创建表达式,仅r设为斜体 tabletext <- cbind( rownames(HRQoL$Sweden), # 遍历每个系数,生成italic(r) == 0.xx的表达式 mapply(function(coef_val) { bquote(italic(r) == .(sprintf("%.2f", coef_val))) }, HRQoL$Sweden[,"coef"]) ) # 绘制森林图,调整txt_gp参数适配表达式文本 forestplot( tabletext, txt_gp = fpTxtGp( label = list( # 第一列保持斜体设置 gpar(fontfamily = "Times", fontface="italic"), # 第二列用正常字体(表达式已单独控制r的样式) gpar(fontfamily = "", col = "blue") ), ticks = gpar(fontfamily = "", cex=1), xlab = gpar(fontfamily = "HersheySerif", cex = 1.5) ), rbind(HRQoL$Sweden), col=clrs, xlab="EQ-5D index" )
关键修改说明
第二列文本生成:
用mapply遍历每个系数值,结合bquote()创建表达式:italic(r):将r设置为斜体.(sprintf("%.2f", coef_val)):把格式化后的系数值插入表达式,保持正常字体
txt_gp参数调整:
第二列的label设置恢复为正常字体(无需再整体设斜体),因为表达式已经单独定义了r的样式。
这样绘制出的森林图,第二列只有r是斜体,数字部分保持原有字体样式,完全符合你的需求!
内容的提问来源于stack exchange,提问作者Tahwan
相关产品推荐
相关产品推荐

