r - 如何使geom_line和geom_point抖动相同的幅度?

标签 r ggplot2 jitter

我有一个ggplot2折线图,其中有两条线具有明显的重叠。我试图使用position_jitterdodge()以便它们更可见,但我无法以相同的方式获得指向两个抖动的线和点。我正在尝试仅使点和线水平抖动(因为我不想建议y轴的任何变化)。这是MWE:

## Create data frames
dimension <- factor(c("A", "B", "C", "D"))
df <- data.frame("dimension" = rep(dimension, 2),
                 "value" = c(20, 21, 34, 32,
                             20, 21, 36, 29),
                 "Time" = c(rep("First", 4), rep("Second", 4)))
## Plot it
ggplot(data = df, aes(x = dimension, y = value,
                      shape = Time, linetype = Time, group = Time)) +
    geom_line(position = position_jitterdodge(dodge.width = 0.45)) +
    geom_point(position = position_jitterdodge(dodge.width = 0.45)) +
    xlab("Dimension") + ylab("Value")


产生丑陋的地方:

Line/point mismatch

我显然在这里犯了根本的错误:我应该怎么做才能使geom_point抖动遵循geom_line抖动?

最佳答案

仅用于水平的另一个选项是指定position_dodge并将其传递给每个几何的position参数。

pd <- position_dodge(0.4)

ggplot(data = df, aes(x = dimension, y = value,
                      shape = Time, linetype = Time, group = Time)) +
  geom_line(position = pd) +
  geom_point(position = pd) +
  xlab("Dimension") + ylab("Value")


enter image description here

关于r - 如何使geom_line和geom_point抖动相同的幅度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39533456/

相关文章:

r - 在 R 中将每行的数据集拆分为较小的文件

r - 如何使用 httr 发布多部分/相关内容(适用于 Google Drive API)

r - ggplot facet_wrap 仅在顶部和左侧带有标签

R ggplot : Change Grouped Boxplot Median line

r - data.table 子赋值为 `on = `

mysql - RMySQL,获取错误 - RS-DBI 驱动程序警告 : (error while fetching rows)

r - ggplot2 - 在图的顶部添加辅助 y 轴

python - 如何在seaborn stripplot中设置抖动种子?

r - 如何修复 R 中 ggplot2 的 geom_jitter() 不稳定的 y 位置?