Как избавиться от прямой от первой и последней точки? - PullRequest
0 голосов
/ 10 февраля 2019

Как мне избавиться от прямой от первой и последней точек?Почему линии не окрашены?Есть ли лучший способ сделать линейный график, я получаю аналогичную проблему с ggplot2.

dat<-Data_for_Analysis_1_

dat$Enrichment<-factor(dat$Enrichment)

plot(TF~Minute, data=dat, col=Enrichment, pch=20,xlab="Minute", 
     ylab="No. of Tongue Flicks", cex.lab=1.5, cex.axis=1.5, 
     cex.main=1.5, cex.sub=1.6)
lines(TF~Minute, data=dat, col=Enrichment)

[1]: https://i.stack.imgur.com/4HHlB.png

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Спасибо, ребята,

Вы не ответили на мой вопрос напрямую, но вы сообщили мне о групповой функции.

Я пошел в Excel и сделал еще один столбец с именем "Экземпляр", где каждый человекнаблюдения были помечены как 1, 2, 3 и т. д., а затем сгруппированы данные по этому.

ggplot(dat, aes(x=Minute, y=TF, group=Instance , col=Enrichment)) + geom_line() + geom_point() + labs(y="No. of Tongue Flicks")

Просто нужно дать ему более подходящий ключ.

Спасибоопять же, ответы очень быстрые и обширные.

введите описание изображения здесь

0 голосов
/ 10 февраля 2019

Предполагая, что ваши данные похожи на данные игрушек, которые я создаю ниже, следующее должно это сделать:

# Create some toy data
m <- 10
dat <- data.frame(Minute = rep(0:60, m))
dat$Enrichment <- rep(LETTERS[1:m], each = 61)
dat$TF <- c(replicate(m, cumsum(rnorm(61, mean = 0.3))))
head(dat)  
#  Minute Enrichment         TF
#1      0          A  0.3203584
#2      1          A  0.9571599
#3      2          A  1.5361236
#4      3          A  1.7571507
#  ... 
#60     59         A  19.25409068
#61     60         A  20.68664549
#62      0         B  -0.05674056
#63      1         B  0.64608473
## And so on...

# Your code:
dat$Enrichment <- factor(dat$Enrichment)

plot(TF ~ Minute, data=dat, col=Enrichment, pch=20,xlab="Minute", 
     ylab="No. of Tongue Flicks", cex.lab=1.5, cex.axis=1.5, 
     cex.main=1.5, cex.sub = 1.6)

# Draw line for each group (could also be done with a for-loop)
.tmp <- lapply(split(dat, dat$Enrichment), 
               function(d) lines(TF ~ Minute, data=d, col=Enrichment))

output

Я подозреваю, что ваша проблемачто время и TF векторы, которые вы передаете lines, интерпретируются как два длинных непрерывных вектора значений.Таким образом, он «сбрасывается» после каждой новой группы, поскольку ваш код в основном игнорирует переменную группировки.

...