# Dendrograms in MATLAB®

How to make Dendrograms in MATLAB® with Plotly.

## Plot Dendrogram

Generate sample data.

rng('default')
X = rand(10,3);


Create a hierarchical binary cluster tree using linkage. Then, plot the dendrogram using the default options.

rng('default')
X = rand(10,3);

dendrogram(tree)

fig2plotly(gcf);


## Specify Dendrogram Leaf Node Order

Generate sample data.

rng('default')
X = rand(10,3);


Create a hierarchical binary cluster tree using linkage.

rng('default')
X = rand(10,3);

D = pdist(X);
leafOrder = optimalleaforder(tree,D);


Plot the dendrogram using an optimal leaf order.

rng('default')
X = rand(10,3);

D = pdist(X);
leafOrder = optimalleaforder(tree,D);

dendrogram(tree,'Reorder',leafOrder)

fig2plotly(gcf);


The order of the leaf nodes in the dendrogram plot corresponds - from left to right - to the permutation in leafOrder.

## Specify Number of Nodes in Dendrogram Plot

Generate sample data.

rng('default')
X = rand(100,2);


There are 100 data points in the original data set, X.

Create a hierarchical binary cluster tree using linkage. Then, plot the dendrogram for the complete tree (100 leaf nodes) by setting the input argument P equal to 0.

rng('default')
X = rand(100,2);

dendrogram(tree,0)


Now, plot the dendrogram with only 25 leaf nodes. Return the mapping of the original data points to the leaf nodes shown in the plot.

rng('default')
X = rand(100,2);

dendrogram(tree,0)

[~,T] = dendrogram(tree,25);

fig2plotly(gcf);


List the original data points that are in leaf node 7 of the dendrogram plot.

rng('default')
X = rand(100,2);

dendrogram(tree,0)

[~,T] = dendrogram(tree,25);

find(T==7)

ans =

7
33
60
70
74
76
86


## Change Dendrogram Orientation and Line Width

Generate sample data.

rng('default')
X = rand(10,3);


Create a hierarchical binary cluster tree using linkage. Then, plot the dendrogram with a vertical orientation, using the default color threshold. Return handles to the lines so you can change the dendrogram line widths.

rng('default')
X = rand(10,3);