geom_line ведет себя странно - PullRequest
       43

geom_line ведет себя странно

0 голосов
/ 02 августа 2020

У меня проблема с довольно простой визуализацией.

Я просто пытаюсь сделать простой график временных рядов некоторых очень чистых данных, который выглядит следующим образом. (это из набора данных Fatalities из пакета AER.)

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()

Здравствуй

1 Ответ

1 голос
/ 02 августа 2020

Я бы просто сделал 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()

участок

Таким образом, он знает, что это два отдельных временных ряда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...