Как пометить извлеченные пиковые значения в данных временных рядов в R

#r #time-series #label

#r #временные ряды #метка

Вопрос:

Я новичок в R, но я работаю с тонной данных временных рядов записей нейронов in vivo.

Я могу построить временной ряд и извлечь локальные максимумы, используя пользовательскую функцию find_peaks, которую я нашел в Интернете (из пакета fluoR):

 df <- format_data(GCaMP)
head(df)

pks <- find_peaks(xvals = df$Trial8,
              n.points = 10) 

neg_pks <- find_peaks(xvals = df$Trial8,
                  n.points = -10) 

## line plot of data

ggplot(df)  
  geom_line(aes(x = Time, y = Trial8))
 

Итак, после этого у меня есть фрейм данных с моими данными и отдельные «значения», помеченные neg_pks и pks, которые определяют, какие точки в данных являются положительными или отрицательными пиками. Как я могу затем отобразить это на свой линейный график, чтобы создать что-то подобное?:

Помеченный график

Ответ №1:

Посмотрите, как функции geom обычно также принимают аргумент данных. Это означает, что вы можете легко добавить слой geom_point, который отображает другие данные (найденное вами подмножество)

Итак, что-то вроде этого: (непроверенный)

 ggplot(df, aes(x=Time, y=Trial8) )  
    geom_line()  
    geom_point( data=df[ pks, ], col="red" )  
    geom_point( data=df[ neg_pks, ], col="red" ) # or perhaps another color?
 

Комментарии:

1. потрясающе, это работает как шарм! … Я все еще только начинаю работать с ggplot … спасибо!