---
title: "How to plot multiple nLTTs and their average"
author: "Richel Bilderbeek"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{How to plot multiple nLTTs and their average}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

The `nLTT` package facilitates plotting one or more nLTT plots,
using `nllt_plot` and `nllt_lines`. 

These functions, however, do not show the average nLTT plot.

The function `nltts_plot` plots multiple nLTT plots and shows
the average nLTT. This helps in getting a quick visualization
of your data.

For working with the raw values, `get_nltt_values` is
preferably used.

### Example: Easy trees

Create two easy trees:

```{r}
newick1 <- "((A:1,B:1):2,C:3);"
newick2 <- "((A:2,B:2):1,C:3);"
phylogeny1 <- ape::read.tree(text = newick1)
phylogeny2 <- ape::read.tree(text = newick2)
```

There are very similar. `phylogeny1` has short tips:

```{r}
ape::plot.phylo(phylogeny1)
ape::add.scale.bar() #nolint
```

This can be observed in the nLTT plot:

```{r}
nLTT::nltt_plot(phylogeny1, ylim = c(0, 1))
```

`phylogeny2` has longer tips:

```{r}
ape::plot.phylo(phylogeny2)
ape::add.scale.bar() #nolint
```

Also this can be observed in the nLTT plot:

```{r}
nLTT::nltt_plot(phylogeny2, ylim = c(0, 1))
```

The average nLTT plot should be somewhere in the middle.

The same, now shown as a plot:

```{r}
nLTT::nltts_plot(c(phylogeny1, phylogeny2), dt = 0.20, plot_nltts = TRUE)
```


### Example: Harder trees

Create two easy trees:

```{r}
newick1 <- "((A:1,B:1):1,(C:1,D:1):1);"
newick2 <- paste0("((((XD:1,ZD:1):1,CE:2):1,(FE:2,EE:2):1):4,((AE:1,BE:1):1,",
  "(WD:1,YD:1):1):5);"
)
phylogeny1 <- ape::read.tree(text = newick1)
phylogeny2 <- ape::read.tree(text = newick2)
```

There are different. `phylogeny1` is relatively simple, with two branching events happening at the same time:

```{r}
ape::plot.phylo(phylogeny1)
ape::add.scale.bar() #nolint
```

This can be observed in the nLTT plot:

```{r}
nLTT::nltt_plot(phylogeny1, ylim = c(0, 1))
```

`phylogeny2` is more elaborate:

```{r}
ape::plot.phylo(phylogeny2)
ape::add.scale.bar() #nolint
```

Also this can be observed in the nLTT plot:

```{r}
nLTT::nltt_plot(phylogeny2, ylim = c(0, 1))
```

The same, now shown as a plot:

```{r}
nLTT::nltts_plot(
  c(phylogeny1, phylogeny2),
  dt = 0.20,
  plot_nltts = TRUE
)
```