Ленточные диаграммы связанных наблюдений / Построение нескольких строк с помощью ggplot2 в R

Я пытаюсь построить несколько строк между двумя парными наблюдениями, как в примере здесь:

пример диаграммы

Вот пример моего data.frame под названием «surp»:

group   drug    data
BDD A   -1.1526
BDD A   -0.2916
BDD A   1.1954
BDD A   0.24379
BDD A   1.0958
BDD A   -0.45312
BDD B   0.42097
BDD B   -0.94172
BDD B   3.3395
BDD B   1.301
BDD B   0.25607
BDD B   0.32317
BDD B   2.621
HC  A   0.4826
HC  A   -0.57789
HC  A   2.4146
HC  A   0.13586
HC  A   0.9254
HC  A   0.41183
HC  A   -0.25771
HC  A   0.75699
HC  A   -0.86372
HC  A   1.2142
HC  A   0.33452
HC  A   -0.089335
HC  B   -3.048
HC  B   -0.19295
HC  B   0.43324
HC  B   -1.3974
HC  B   -1.4349
HC  B   2.2073
HC  B   0.71036
HC  B   -0.1725
HC  B   0.36907

Вот мой пример кода:

ggplot(data = surp, aes(x = drug, y = data, group = group, colour =factor(group))) +
  geom_point()+
  geom_line(aes(group = drug)) 

Однако этот код просто отображает две вертикальные линии, а не линии, соединяющие каждую точку данных между A и B (ось x), как в примере, который я приложил выше.


person Sally Grace    schedule 29.08.2017    source источник
comment
не могли бы вы опубликовать свои данные с помощью функции dput? Просто вставьте в консоль R dput(surp) и скопируйте вывод.   -  person Mal_a    schedule 29.08.2017
comment
Где переменная, указывающая, какие случаи связаны друг с другом? т.е. вам нужна соответствующая переменная group.   -  person Henrik    schedule 29.08.2017
comment
Спасибо @Henrik, вы были правы - я понял, что моя групповая переменная предназначена для всей группы, и, поскольку geom_line будет соединять точки в соответствии с групповой эстетикой, мне нужно было указать групповую переменную в соответствии с отдельным участником, а не группой   -  person Sally Grace    schedule 30.08.2017


Ответы (1)


На графике всего две строки из-за того, что в вашем фрейме данных только две группы (BDD и HC)...

Я думаю, вы должны использовать что-то вроде этого:

ggplot(data = surp, aes(x = drug, y = data, colour =factor(group))) +
  geom_point()+geom_line() + facet_wrap(~group)
person Mal_a    schedule 29.08.2017
comment
Спасибо!! В итоге мне пришлось добавить третий столбец в мой фрейм данных с идентификаторами участников (с пометкой «участник»), и я смог заставить его работать именно так, как хотел, с помощью следующего кода: ggplot(mydat, aes(drug, data, group = participant, colour = group)) + geom_point() + geom_line() + facet_wrap(~group) - person Sally Grace; 30.08.2017