# Multidimensional scaling¶

Utility functions for multidimensional scaling.

R must be installed, and the Python package `rpy2` must be installed, e.g.:

```\$ apt-get install r-base
\$ pip install rpy2
```

`anhima.mds.``smacof`(dist_square, **kwargs)[source]

Multidimensional scaling using the SMACOF (Scaling by Majorizing a Complicated Function) algorithm.

Parameters: dist_square : array_like, shape (n_samples, n_samples) A distance matrix in square form. kwargs : additional keyword arguments Additional keyword arguments are passed through to `sklearn.manifold.MDS()`. coords : ndarray, shape (n_samples, n_components) An array whose rows give the coordinates of the points chosen to represent the dissimilarities.
`anhima.mds.``classical`(dist_square, k=2)[source]

Classical multidimensional scaling via the R `cmdscale` function.

Parameters: dist_square : array_like, shape (n_samples, n_samples) A distance matrix in square form. k : integer, optional The maximum dimension of the space which the data are to be represented in; must be in {1, 2, ..., n-1}. coords : ndarray, shape (n_samples, k) An array whose rows give the coordinates of the points chosen to represent the dissimilarities.
`anhima.mds.``plot_coords`(coords, dimx=1, dimy=2, ax=None, colors='b', sizes=20, labels=None, scatter_kwargs=None, annotate_kwargs=None)[source]

Scatter plot of transformed coordinates from multidimensional scaling.

Parameters: coords : ndarray, shape (n_samples, n_components) The transformed coordinates. dimx : int, optional The dimension to plot on the X axis. N.B., this is one-based, so 1 is the first dimension, 2 is the second dimension, etc. dimy : int, optional The dimension to plot on the Y axis. N.B., this is one-based, so 1 is the first dimension, 2 is the second dimension, etc. ax : axes, optional The axes on which to draw. If not provided, a new figure will be created. colors : color or sequence of color, optional Can be a single color format string, or a sequence of color specifications of length n_samples. sizes : scalar or array_like, shape (n_samples), optional Size in points^2. labels : sequence of strings If provided, will be used to label points in the plot. scatter_kwargs : dict-like Additional keyword arguments passed through to plt.scatter. annotate_kwargs : dict-like Additional keyword arguments passed through to plt.annotate when labelling points. ax : axes The axes on which the plot was drawn.