Skip to contents

The goal of ggethos is to provide a user-frienldy way to plot ethograms using ggplot2.

Installation

At this point, this is an experimental package, and you can only install the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("matiasandina/ggethos")

Once it’s on CRAN, you can install the released version of ggethos from CRAN with:

install.packages("ggethos")

And the development version from GitHub with:

# install.packages("devtools")
devtools::install_github("matiasandina/ggethos")

Example

This is a basic example of plotting ethograms with ggethos:

library(ggplot2)
library(ggethos)
library(dplyr)
wombats %>% 
  group_by(wombat) %>% 
  slice(1:2)
#> # A tibble: 8 × 9
#> # Groups:   wombat [4]
#>   wombat trial behaviour trial_frame frame seconds exp_dt             
#>   <chr>  <int> <chr>           <int> <int>   <dbl> <dttm>             
#> 1 gimli      1 <NA>                1     1       0 2019-08-28 06:37:44
#> 2 gimli      1 <NA>                2     2       5 2019-08-28 06:37:44
#> 3 jerry      1 <NA>                1     1       0 2020-09-21 22:16:33
#> 4 jerry      1 <NA>                2     2       5 2020-09-21 22:16:33
#> 5 pomelo     1 digging             1     1       0 2019-09-20 23:57:04
#> 6 pomelo     1 digging             2     2       5 2019-09-20 23:57:04
#> 7 speedy     1 pondering           1     1       0 2020-01-14 08:37:44
#> 8 speedy     1 pondering           2     2       5 2020-01-14 08:37:44
#> # … with 2 more variables: start_dt <dttm>, end_dt <dttm>

Let’s plot the behavior of the wombats

# x axis will be in sample space
ggplot(wombats, aes(y=wombat, behaviour=behaviour)) + geom_ethogram() 

Let’s look at them using a proper x axis and separating by trials:

# x axis will be in seconds
ggplot(wombats, aes(x=seconds, 
                    y=wombat, 
                    behaviour=behaviour,
                    color=behaviour)) + 
  geom_ethogram() +
  facet_wrap(~trial)

Can we align the trials? Yes! Use align_trials = TRUE:

# x axis will be in seconds
# trials re-aligned
ggplot(wombats, aes(x=seconds, 
                    y=wombat, 
                    behaviour=behaviour,
                    color=behaviour)) + 
  geom_ethogram(align_trials = T) +
  facet_wrap(~trial)

Issues

This is a preliminary release and the package is still very much experimental. Please file issues to improve it.