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

R语言ggplot2绘制RDD图时x轴刻度与回归线延伸问题

RDD绘图问题修复方案

首先先修正你代码里的一处逻辑偏差:你原本的哑变量D判断条件为z >= -0.1,不符合你要求的「z≥0为1、z<0为0」的分组规则,需要先调整该判断条件。

两个问题的修复逻辑如下:

  • 整数刻度问题:你的z是数值型变量,不能用scale_x_discrete配置,改用scale_x_continuous,通过breaks参数手动指定所有整数刻度,同时将原xlim的范围配置整合到scale_x_continuous的limits参数中,避免参数冲突,另外隐藏次要网格线即可消除非整数刻度的辅助线。
  • 回归线延伸问题:给geom_smooth添加fullrange = TRUE参数,允许拟合结果延伸到整个x轴取值范围,左侧分组的回归线和置信区间就会自动延伸到z=0的断点位置。

完整可运行代码

library(dplyr)
library(ggplot2)

# 基础数据构造
SalaryAfter <- c(287.780,305.181,323.468,339.082,344.738,370.475,373.257,
                 372.682,388.939,386.994) 
z <- -5:4
df <- data.frame(z,SalaryAfter)

# 绘图代码
df %>% 
  mutate(D = as.factor(ifelse(z >= 0, 1, 0))) %>% 
  ggplot(aes(x = z, y = SalaryAfter, color = D)) +
  geom_point(size = 2) + 
  geom_smooth(method = "lm", fullrange = TRUE) +
  geom_vline(xintercept = 0, linetype = "dashed") + 
  scale_x_continuous(
    breaks = seq(-5, 4, 1),
    limits = c(-6, 5),
    name = "Distance to acceptance score"
  ) +
  labs(
    title = "Figur 1.1", 
    subtitle = "Salary for every distance to the acceptance score"
  ) +
  theme(
    panel.grid.major = element_line(color = "white", size = 0.75, linetype = 1),
    panel.grid.minor = element_blank()
  )

内容的提问来源于stack exchange,提问作者Casper97

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:45:03