Использование столбцов в R - PullRequest
0 голосов
/ 27 января 2019

Итак, я пытаюсь воссоздать график.

Subject Group   1   2   3   4   5   6 7 
1       A       45      45      45      45      80      80      80  

Итак, я сгруппировал его по группам, и col - это тема. Тем не менее, я не уверен, как использовать несколько столбцов в оси Y

ggplot(stroke_data, aes(x = , y = , group_by("Group") ,col = "Subject" )) + geom_line()

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Я интерпретирую вопрос, как о том, что вы хотите, чтобы баллы определяли высоту y, и хотите, чтобы «25, 50, 75, 100» были метками (или «разрывы») на оси y.

Для табличных данных, подобных этой, идиоматический (более простой и мощный) способ использования ggplot2 состоит в преобразовании ваших данных в длинную форму, например, с использованием tidyr::gather. Это делает неделю переменной в одном столбце, который можно назначить эстетике оси X.

library(dplyr); library(tidyr); library(ggplot2)
stroke_data %>%
  gather(week, score, week1:week7) %>%
  ggplot(aes(week, score, color = as.factor(Subject), group = Subject)) + 
    geom_line() +
  scale_y_continuous(breaks = c(25, 50, 75, 100)) +
  labs(color = "Subject")

enter image description here

0 голосов
/ 27 января 2019

Сгруппируйте данные и добавьте ось y к отфильтрованным и сгруппированным данным:

    grouped_stroke_data = stroke_data%>% 
                               group_by("Group") %>% 
                                 mutate(yaxis= c(0,25, 50, 75, 100))
# A tibble: 5 x 11
# Groups:   "Group" [1]
  Subject Group week1 week2 week3 week4 week5 week6 week7 `"Group"` yaxis
    <int> <chr> <int> <int> <int> <int> <int> <int> <int> <chr>     <dbl>
1       1 A        45    45    45    45    80    80    80 Group         0
2       2 A        20    25    25    25    30    35    30 Group        25
3       3 A        50    50    55    70    70    75    90 Group        50
4       4 A        25    25    35    40    60    60    70 Group        75
5       5 A       100   100   100   100   100   100   100 Group       100

Вы можете добавить к графику несколько графиков (линий), сохраняя при этом одну и ту же ось Y и каждый раз изменяя x:

ggplot(data=grouped_stroke_data, col = "Subject") + 
   geom_line(aes(x = week1 , y = yaxis,  col = "blue") ) + 
      geom_line(aes(x = week2 , y = yaxis,   , col="red") ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...