使用ggpredict()绘制lme预测图时如何修改分组系数hp的显示名称
修改ggeffects分组变量显示名的实现方法
不需要改动原有混合效应模型的拟合逻辑,有两种可直接落地的操作方式调整hp的显示标签:
方法1:在绘图层补充美学标签映射
ggpredict()经plot()输出的对象是标准ggplot结构,原有代码仅在labs()函数中定义了x、y轴标签,只需在同一函数内补充hp对应的视觉映射标签即可。
需要注意:ggeffects默认对第三项分组变量同时映射颜色和线型两种视觉元素,必须同时为两个维度指定自定义标签,否则会出现两个独立的默认变量名标题。
可直接运行的代码:
library(nlme) library(ggeffects) library(ggplot2) # 拟合线性混合效应模型 lme1 <- lme(mpg ~ cyl + disp + hp, random = ~1|disp, method = "ML", data=mtcars) # 绘图并自定义全部显示标签 plot(ggpredict(lme1, terms = c("cyl", "disp", "hp[80,150,215]"))) + labs( x = "气缸数量", y = "每美制加仑燃油行驶里程(英里)", # 替换hp对应的图例标题 color = "总马力", linetype = "总马力" )
方法2:提前绑定变量标签自动识别
ggeffects内置了变量标签自动读取逻辑,只要提前给数据框中的目标变量添加自定义标签属性,后续所有基于该数据集的ggpredict()绘图,都会自动将属性值作为对应分面、分组维度的显示名,不需要在绘图层重复写标签定义代码。
实现代码:
# 为hp变量绑定自定义显示标签 attr(mtcars$hp, "label") <- "总马力" # 直接绘图即可自动加载自定义标签 plot(ggpredict(lme1, terms = c("cyl", "disp", "hp[80,150,215]"))) + labs(x = "气缸数量", y = "每美制加仑燃油行驶里程(英里)")
两种方法的适用差异:
- 方法1适合临时调整单张图的显示内容,不需要修改原始数据集结构,调整灵活度最高
- 方法2适合批量生成同数据集的多组预测图,一次设置即可在所有绘图环节复用,减少重复代码
操作提示:如果需要修改第二参数对应的分面变量(本例中为disp)的分面标题,操作逻辑完全一致:要么在
labs()函数中给facet参数传入自定义名称,要么提前为disp变量绑定对应标签属性即可。
内容的提问来源于stack exchange,提问作者Matthew
相关产品推荐
相关产品推荐

