Get the x-y coordinates of a dendrogram's nodes. Can be used to add text or images on the tree.

```
get_nodes_xy(
dend,
type = c("rectangle", "triangle"),
center = FALSE,
horiz = FALSE,
...
)
```

This is a striped down version of the
function `plot.dendrogram`

.
It performs (almost) the same task, only it does not do any plotting
but it does save the x-y coordiantes of the nodes.

- dend
a dendrogram object

- type
type of plot.

- center
logical; if TRUE, nodes are plotted centered with respect to the leaves in the branch. Otherwise (default), plot them in the middle of all direct child nodes.

- horiz
logical indicating if the dendrogram should be drawn horizontally or not.

- ...
not used

A 2-dimensional matrix, with rows as the number of nodes, and the first column is the x location, while the second is the y location.

```
if (FALSE) {
# If we would like to see the numbers from plot:
# ?getOption("verbose")
# options(verbose=TRUE)
# options(verbose=FALSE)
# -----
# Draw a depth first search illustration
# -----
dend <- 1:5 %>%
dist() %>%
hclust() %>%
as.dendrogram()
get_nodes_xy(dend)
# polygon(get_nodes_xy(dend), col = 2)
plot(dend,
leaflab = "none",
main = "Depth-first search in a dendrogram"
)
xy <- get_nodes_xy(dend)
for (i in 1:(nrow(xy) - 1)) {
arrows(xy[i, 1], xy[i, 2],
angle = 17,
length = .5,
xy[i + 1, 1], xy[i + 1, 2],
lty = 1, col = 3, lwd = 1.5
)
}
points(xy, pch = 19, cex = 4)
text(xy, labels = 1:nnodes(dend), cex = 1.2, col = "white", adj = c(0.4, 0.4))
}
```