ggplot-如何仅在一侧抖动?

时间:2019-05-22 13:28:03

标签: r ggplot2

假设我们有以下代码:

data %>%
  ggplot(aes(x = Var1, y = Var2))+
  geom_jitter()+
  geom_smooth(method = "lm", alpha = .5, color = "blue", fill = "cornflowerblue")

这段代码产生了这张图片:

enter image description here

我真的不喜欢回归线不会超出0和1,因为它会使图形看起来在视觉上非常不愉快。

我尝试将fullrange = T添加到geom_smooth,但是没有任何结果;我的理由是,这是因为没有超过0和1的实际数据点-它们只是抖动。因此,我想应用抖动,但是我想将值为0的点仅向右抖动,而将值为1的点仅向左抖动

以前,我尝试添加以下内容:

+scale_x_continuous(limits = c(0, 1))

但是随后一些数据点被切断:

enter image description here

为避免这种情况,我尝试了以下解决方案:

+scale_x_continuous(limits = c(0, 1), oob = scales::squish)

但是它会产生一个图,其中数据再次被过度绘制:

enter image description here

在您问之前:是的,Var1是一个因子变量,而我将其视为数字并使用连续刻度。这是因为如果我将其作为一个因素,则回归线根本不会出现在绘图中,而只会显示散点。我已经尝试使用this question的答案所建议的代码,但是它没有用,我得到的只是一个散点图,没有回归线。

由于是机密信息,因此无法共享数据。

谢谢您的理解,希望有人可以帮助我!

0 个答案:

没有答案