首页 > 解决方案 > ggplot 1-column facet wrap的x轴上未对齐的点

问题描述

请检查并建议我如何解决以下脚本生成的两个图的差异:

time1 <- c(
  as.POSIXlt("2021-05-02 23:57:29"),
  as.POSIXlt("2021-05-02 23:58:29"),
  as.POSIXlt("2021-05-02 23:59:29"),
  as.POSIXlt("2021-05-03 11:06:00"),
  as.POSIXlt("2021-05-03 11:07:00"),
  as.POSIXlt("2021-05-03 11:08:00")
)
time2 <- c(
  as.POSIXlt("2021-05-02 23:59:29"),
  as.POSIXlt("2021-05-02 23:59:29"),
  as.POSIXlt("2021-05-02 23:59:29"),
  as.POSIXlt("2021-05-03 11:08:00"),
  as.POSIXlt("2021-05-03 11:08:00"),
  as.POSIXlt("2021-05-03 11:08:00")
)

grp <- c("A","B","C","A","B","C")
cnt <- c(29,1,30,31,2,33)

df1 <- data.frame(time1, grp, cnt)
df2 <- data.frame(time2, grp, cnt)

p1 <- ggplot(df1, aes(x = time1, y = cnt, color = grp)) +
  geom_jitter(size = 1.0, show.legend = FALSE) +
  facet_wrap(~grp, ncol = 1, shrink = FALSE)

p2 <- ggplot(df2, aes(x = time2, y = cnt, color = grp)) +
  geom_jitter(size = 1.0, show.legend = FALSE) +
  facet_wrap(~grp, ncol = 1, shrink = FALSE)

绘图 p1 显示点按照它们的 time1 值对齐。在情节 p2 中,点未对齐。

绘制 p1

情节 p2

标签: rdatetimeggplot2facet-wrapposixlt

解决方案


当您输入 时?geom_jitter,您会看到点位置会有随机变化:

jitter geom 是 geom_point(position = "jitter") 的便捷快捷方式。它为每个点的位置添加了少量的随机变化,并且是处理由较小数据集中的离散性引起的过度绘图的有用方法。

要具有确定性布局,您应该使用geom_point,它为您提供 在此处输入图像描述


推荐阅读