如何调整sjPlot::plot_model()输出的参考线厚度与标签字号
解决plot_model()图形样式调整问题
针对你提出的两个需求,给出以下修改方案:
1. 加粗1:1参考线(vline)
sjPlot::plot_model() 没有直接设置参考线粗细的参数,我们可以通过添加 ggplot2::geom_vline() 来设置更粗的参考线(覆盖原有细线)。
2. 增大标签字体大小
你已使用theme(text = element_text(size = 20))调整整体文本,在此基础上可以精准拆分轴标题、刻度标签的大小,让样式更协调。
修改后的完整代码:
library(lme4) library(ggplot2) library(sjPlot) # 运行模型 plotModel <- glmer(used ~ BareGround + ConiferTreeCanopy + DeciduousTreeCanopy + Developed + MesicGrass + MesicShrub + Water + XericGrass + XericShrub + (1|id) + (1|month), family = binomial(link = "logit"), data = plotData, na.action="na.fail") # 设置基础主题 set_theme(base = theme_light()) # 生成并调整图形 state1plot <- plot_model(plotModel, show.values = TRUE, show.p = FALSE, value.offset = 0.3, title = "", axis.labels = c("Xeric Shrubs", "Xeric Grasses", "Water", "Mesic Shrubs", "Mesic Grasses", "Developed", "Deciduous Tree Canopy", "Conifer Tree Canopy", "Bare Ground"), axis.lim = c(0.01, 20), colors = c("#C43302", "#EDAA25"), vline.color = "#061423", dot.size = 8, line.size = 3) + # 细化字体大小设置 theme( text = element_text(size = 20), axis.title = element_text(size = 22), # 轴标题 axis.text.x = element_text(size = 18), # 横轴刻度标签 axis.text.y = element_text(size = 18) # 纵轴刻度标签 ) + # 添加加粗的1:1参考线 geom_vline(xintercept = 1, color = "#061423", size = 2) # 显示图形 state1plot
说明:
- 参考线加粗:通过
geom_vline()的size参数控制粗细(数值越大线越粗),颜色与原参数保持一致,确保样式统一。 - 字体调整:拆分不同元素的字体大小,避免单一设置导致部分标签比例失调。
内容的提问来源于stack exchange,提问作者b786
相关产品推荐
相关产品推荐

