如何优化sjPlot生成图表的线条质量并调整坐标轴参数
问题解决方案
1. 线条锯齿优化
出现锯齿的核心原因有两个,分别对应两种解决方案:
- 预测采样点不足:你当前代码中
terms参数里设置了Pt[n=100],即仅在Pt的取值范围内采样100个点拟合预测线,点量不足会导致线条有明显棱角。将采样数调高到300~500即可大幅改善平滑度,修改plot_model对应参数即可:
p = plot_model(m5, type = "pred", terms = c("Pt[n=500]", "Pa"), # 把采样数从100调整为500 digits=1, line.size=1, # 适当调大线宽也能弱化锯齿感 show.data=T, colors=c("green","#00a0c9","red"))
- 图形设备/导出分辨率不足:如果是RStudio预览时看到锯齿,可以把图形设备后端替换为抗锯齿的ragg:
- 打开RStudio的「工具-全局选项-常规-图形」,将后端设置为
AGG后重启即可 - 导出图片时用ragg包导出,设置300DPI以上分辨率完全消除锯齿:
library(ragg) agg_png("优化后图表.png", width = 8, height = 6, res = 300, units = "in") print(p) dev.off() - 打开RStudio的「工具-全局选项-常规-图形」,将后端设置为
2. X轴刻度与空白优化
你之前的代码不生效是因为Pt是连续变量,不能用scale_x_discrete设置,改用scale_x_continuous即可同时解决小数刻度和两端空白问题:
p + scale_x_continuous( breaks = c(1,2,3), # 仅保留1、2、3三个刻度,自动过滤小数刻度 expand = c(0,0) # 完全去掉X轴两端的空白区域 )
内容的提问来源于stack exchange,提问作者user12257
相关产品推荐
相关产品推荐

