geom_line 行为异常

geom_line is behaving strangely

我在使用非常简单的可视化时遇到问题。

我只是想为一些非常干净的数据绘制一个简单的时间序列图,如下所示。 (它来自 AER 包的 Fatalities 数据集。)

Fatalities %>%
  select(year, state, fatal_rate) %>% 
  filter(state %in% c('ca', 'az'))

 year state fatal_rate
8  1982    az    2.49914
9  1983    az    2.26738
10 1984    az    2.82878
11 1985    az    2.80201
12 1986    az    3.07106
13 1987    az    2.76728
14 1988    az    2.70565
22 1982    ca    1.86194
23 1983    ca    1.80672
24 1984    ca    1.94611
25 1985    ca    1.88128
26 1986    ca    1.94548
27 1987    ca    1.98966
28 1988    ca    1.90365

当我绘制它时,我几乎得到了我想要的,这是每个州的一条线图,但由于某种原因存在不同州的线相互连接的问题。它始终是一个状态从其时间序列的末尾连接到另一个状态的另一个状态的时间序列的开始。如果我添加更多状态,它看起来会更乱,结果是一样的:许多不同颜色的线相互连接。

有人知道我怎样才能让 ggplot2 停止这样做吗?知道为什么会这样,这样我以后就可以避免此类问题了吗?预先感谢您的任何建议。

Fatalities %>%
  select(year, state, fatal_rate) %>% 
  filter(state %in% c('ca', 'az')) %>%
  ggplot(aes(year, fatal_rate)) +
  geom_line(aes(color = state), group = 1) +
  theme_bw()

我只想让 state 成为石斑鱼,而不是让它们与您正在做的一样。 ggplot 将提供您想要的行为:

library(tidyverse)
data(Fatalities, package = "AER")

Fatalities %>%
  select(year, state, afatal) %>% 
  filter(state %in% c('ca', 'az')) %>% 
  ggplot(aes(year, afatal, group = state)) +
  geom_line(aes(color = state)) +
  theme_bw()

这样它就知道这是两个独立的时间序列。