在 R 中将 geom_line 与 ggplot 一起使用时之字形

Zig Zag when using geom_line with ggplot in R

我非常感谢在 R 中使用以下代码时对曲折的一些见解:

tbi_military %>% 
ggplot(aes(x = year, y = diagnosed, color = service)) +
geom_line() +
facet_wrap(vars(severity))

数据集由 5 个变量组成(3 个字符,2 个数字)。任何见解将不胜感激。

enter image description here

这只是一个标准数据集的插图。假设我们有兴趣根据饮食绘制小鸡随时间变化的体重。我们会尝试这样绘制:

library(ggplot2)

ggplot(ChickWeight, aes(Time, weight, colour = factor(Diet))) +
  geom_line()

您可以看到锯齿形图案出现,因为每个 diet/time 点都有多个观察点。因为 geom_line 根据 x 轴对数据进行排序,所以这显示为一条垂直线,跨越当时每种饮食的数据点范围。

数据有一个名为 'Chick' 的附加变量,用于区分个体小鸡。将其包括在分组中解决了锯齿形模式,每一行都是每个小鸡随时间推移的重量。

ggplot(ChickWeight, aes(Time, weight, colour = factor(Diet))) +
  geom_line(aes(group = interaction(Chick, Diet)))

如果您没有一个额外的变量来区分各个趋势,您可以改为选择汇总每个时间点的数据,例如,取每个时间点的平均值。

ggplot(ChickWeight, aes(Time, weight, colour = factor(Diet))) +
  geom_line(stat = "summary", fun = mean)

reprex package (v1.0.0)

于 2021-08-30 创建