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

See also the examples at:

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().

Returns:

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}.

Returns:

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.

Returns:

ax : axes

The axes on which the plot was drawn.