R语言sjPlot绘制交互效应边际图时如何显示坐标轴全部刻度标签
sjPlot的plot_model函数输出的是标准ggplot2绘图对象,你可以直接叠加ggplot2的坐标轴设置语法自定义刻度,修改方案如下:
修改后完整代码
library(ggplot2) # 未加载ggplot2时需先运行此行 # 混合模型拟合代码不变 specif<- lmer(Lprog ~ phq9_total * Lspecif_C + (1|ID), Study1) pspecif<-plot_model(specif,type="int", mdrt.values="meansd", title ="Specificity", axis.lim = list(c(0,7), c(0,7)), # 列表第一个元素为X轴范围,第二个为Y轴范围,仅需调整一个轴可直接写c(0,7) axis.title= c("depression","goal progress"), colors = "simply", show.legend=FALSE) # 新增刻度设置代码 pspecif + scale_x_continuous(breaks = 0:7) + # 让X轴显示0-7所有整数刻度,不需要调整X轴可删除此行 scale_y_continuous(breaks = 0:7) + # 让Y轴显示0-7所有整数刻度,不需要调整Y轴可删除此行 theme(plot.title = element_text(hjust = 0.5))
核心修改说明
- 先把
axis.lim的范围从原来的1-7调整为你需要的0-7,保证刻度值不会因为超出坐标轴范围被隐藏 - 通过
scale_xx_continuous的breaks参数手动指定要显示的刻度值,0:7就代表0到7的所有整数,会强制坐标轴在对应位置生成刻度和标签,不会自动合并间隔
如果整数刻度显示过密,可额外在theme中添加axis.text.x = element_text(size = 9)、axis.text.y = element_text(size = 9)调整刻度标签的大小。
内容的提问来源于stack exchange,提问作者MarinaM
相关产品推荐
相关产品推荐

