如何在R语言中修改效应图的标题及因子/水平名称?
effects包效应图修改方案
1. 修改标题并移至底部
直接在plot()函数中清空默认标题,用sub参数设置底部标题:
plot(eff, ylab = "x_test", xlab = "y_test", main = "", # 移除默认的"Head_num*lp effect plot"标题 sub = "你的自定义底部标题" # 设置底部显示的标题 )
如果需要调整底部标题的对齐方式,可提前调用par(adj=0.5)让标题居中。
2. 修改因子Head_num及其水平名称
方法一:修改原始数据后重新拟合模型
直接在数据中重定义因子的水平和名称,再重新跑模型:
# 假设你的数据集名为df df$Head_num <- factor(df$Head_num, levels = c("S", "P"), # 原水平值 labels = c("自定义S名称", "自定义P名称") # 新名称 ) # 重新拟合你的模型m.f_alt(替换成你实际的模型代码) m.f_alt <- lm(响应变量 ~ Head_num + lp + ..., data = df) # 重新生成效应对象并绘图 eff <- Effect(c("Head_num", "lp"), m.f_alt) plot(eff, ylab = "x_test", xlab = "y_test")
方法二:直接修改效应对象(无需重拟合模型)
直接修改eff对象的变量和水平属性:
# 修改因子水平名称 eff$variables[[1]]$levels <- c("自定义S名称", "自定义P名称") # 修改因子的变量名(图例标题) names(eff$variables)[1] <- "自定义Head_num名称" # 绘图 plot(eff, ylab = "x_test", xlab = "y_test")
3. 用ggplot2风格修改变量/标题
effects包支持将效应图转为ggplot对象,之后就能用ggplot2的语法自由调整所有元素:
library(ggplot2) # 转换为ggplot对象并调整 p <- ggplot(eff) + # 绘制拟合线和置信区间 geom_line(aes(x = lp, y = fit, color = Head_num)) + geom_ribbon(aes(x = lp, ymin = lower, ymax = upper, fill = Head_num), alpha = 0.2) + # 设置各类标签 labs( x = "y_test", y = "x_test", caption = "自定义底部标题", # caption默认显示在图最底部 color = "自定义Head_num名称", # 图例颜色标题 fill = "自定义Head_num名称" # 图例填充标题 ) + # 修改因子水平显示名称 scale_color_discrete(labels = c("自定义S名称", "自定义P名称")) + scale_fill_discrete(labels = c("自定义S名称", "自定义P名称")) + # 让底部标题居中 theme(plot.caption = element_text(hjust = 0.5)) print(p)
内容的提问来源于stack exchange,提问作者Jackson King
相关产品推荐
相关产品推荐

