Multidimensional scaling of some distance matrix defined on the vertices of a graph.
Usage
layout_with_mds(graph, dist = NULL, dim = 2, options = arpack_defaults())
with_mds(...)
Arguments
- graph
The input graph.
- dist
The distance matrix for the multidimensional scaling. If
NULL
(the default), then the unweighted shortest path matrix is used.- dim
layout_with_mds()
supports dimensions up to the number of nodes minus one, but only if the graph is connected; for unconnected graphs, the only possible value is 2. This is becausemerge_coords()
only works in 2D.- options
This is currently ignored, as ARPACK is not used any more for solving the eigenproblem
- ...
Passed to
layout_with_mds()
.
Details
layout_with_mds()
uses classical multidimensional scaling (Torgerson scaling)
for generating the coordinates. Multidimensional scaling aims to place points
from a higher dimensional space in a (typically) 2 dimensional plane, so that
the distances between the points are kept as much as this is possible.
By default igraph uses the shortest path matrix as the distances between the
nodes, but the user can override this via the dist
argument.
Warning: If the graph is symmetric to the exchange of two vertices (as is the case with leaves of a tree connecting to the same parent), classical multidimensional scaling may assign the same coordinates to these vertices.
This function generates the layout separately for each graph component and
then merges them via merge_coords()
.
References
Cox, T. F. and Cox, M. A. A. (2001) Multidimensional Scaling. Second edition. Chapman and Hall.
See also
Other graph layouts:
add_layout_()
,
component_wise()
,
layout_()
,
layout_as_bipartite()
,
layout_as_star()
,
layout_as_tree()
,
layout_in_circle()
,
layout_nicely()
,
layout_on_grid()
,
layout_on_sphere()
,
layout_randomly()
,
layout_with_dh()
,
layout_with_fr()
,
layout_with_gem()
,
layout_with_graphopt()
,
layout_with_kk()
,
layout_with_lgl()
,
layout_with_sugiyama()
,
merge_coords()
,
norm_coords()
,
normalize()
Author
Tamas Nepusz ntamas@gmail.com and Gabor Csardi csardi.gabor@gmail.com
Examples
g <- sample_gnp(100, 2 / 100)
l <- layout_with_mds(g)
plot(g, layout = l, vertex.label = NA, vertex.size = 3)