在ggplot中绘制具有组的点之间的线

时间:2019-11-05 10:48:26

标签: r ggplot2 time-series

我有一个时间序列,每个点都有一个时间,一个值和一个他所属的组。我正在尝试在x轴上绘制时间,在y轴上绘制值,并根据组显示不同的颜色。

我尝试使用geom_pathgeom_line,但是它们最终将点链接到组内的点。我发现当我为组使用连续变量时,我有一条普通线;但是,当我使用因子或类别变量时,出现链接问题。

这是我想要的可复制示例:

df = data.frame(time = c(1,2,3,4,5,6,7,8,9,10), value = c(5,4,9,3,8,2,5,8,7,1), group = c(1,2,2,2,1,1,2,2,2,2))
ggplot(df, aes(time, value, color = group)) + geom_line()

Image of what the graph should look like

这是我拥有的可复制示例:

df = data.frame(time = c(1,2,3,4,5,6,7,8,9,10), value = c(5,4,9,3,8,2,5,8,7,1), group = c("apple","pear","pear","pear","apple","apple","pear","pear","pear","pear"))
ggplot(df, aes(time, value, color = group)) + geom_line()

Image of what the graph actually looks like

因此第一个示例运行良好,但是1 /它增加了几行代码来更改图例以具有所需的标签,2 /出于好奇我想知道我是否错过了某些东西。

我可以使用ggplot中的任何选项来实现我期望的行为,或者这是内部约束吗?

1 个答案:

答案 0 :(得分:0)

正如Richard TelfordCarles Sans Fuentes所指出的那样,在ggplot美学中添加group = 1即可完成工作。因此,正常代码应为:

ggplot(df, aes(time, value, color = group, group = 1)) + geom_line()