You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:42:44