Линии, не соединяющие правильный путь с функцией построения графика в R - PullRequest
3 голосов
/ 05 апреля 2020

Я работаю над построением данных с помощью набора данных Indometh.

Есть дополнительная строка, соединяющая первую и последнюю точки данных каждого субъекта. Как мне удалить эту строку? Это проблема с тем, как мои данные сортируются?

Мой код:

plot(Indometh$time, Indometh$conc, type = "l") 

Отредактировано:

Решение:

plot(Indometh$time[Indometh$Subject == "1"], Indometh$conc[Indometh$Subject == "1"]) 

## Line for subject 2
lines(Indometh$time[Indometh$Subject == "2"], Indometh$conc[Indometh$Subject == "2"]) 

Ответы [ 2 ]

3 голосов
/ 05 апреля 2020

Мы могли бы использовать ggplot

library(ggplot2)
ggplot(Indometh, aes(x = time, y = conc)) + 
        geom_line()

enter image description here

Или для каждого «предмета»

ggplot(Indometh, aes(x = time, y = conc)) +
        geom_line(aes(color = Subject))

enter image description here


В base R это можно сделать с помощью matplot

matplot(xtabs(conc ~ time + Subject, Indometh), type = 'l', ylab = 'conc')

Обновление

Чтобы установить собственный цвет

colr_set <- rainbow(6)[as.integer(levels(Indometh$Subject))]
matplot(xtabs(conc ~ time + Subject, Indometh), type = 'l',
   ylab = 'conc', col =colr_set)
legend("left", legend = levels(Indometh$Subject), 
          lty = c(1, 1), lwd = c(2.5, 2.5), col = colr_set)
1 голос
/ 05 апреля 2020

Существует несколько групп (номер субъекта), и все они представлены одной линией. Поэтому, когда он достигает конечного времени для одного субъекта, он связывает эту точку с первым разом для следующего субъекта.

См. Группируйте данные и постройте несколько строк , чтобы узнать, как это исправить.

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