Re: Distance problem
- To: mathgroup at smc.vnet.net
- Subject: [mg16355] Re: [mg16256] Distance problem
- From: BobHanlon at aol.com
- Date: Thu, 11 Mar 1999 02:16:35 -0500
- Sender: owner-wri-mathgroup at wolfram.com
>Mietta Lennes wrote: > > I need to draw a figure picturing the relative interdistances of a limited > set of labeled points. The distance of each point to every other point is > known. On the basis of this information, is there a way to draw a 2- or > 3-dimensional "map" where each point's location (coordinates) corresponds > to its distance to other points? On which terms is this possible? > > Is there a computer program that can at least approximate this? > > I am writing a paper in which this kind of figures would be most useful > and enlightening... but I need the information fast. Please mail any > possible answers straight to me. > Mietta, The distance between two points is given by dist[x_, y_] := Sqrt[Plus @@ ((x-y)^2)] /; Length[x] == Length[y] To be able to display the results, the points are assumed to be two-dimensional pts = Table[{Random[], Random[]}, {10}]; You need to define a metric, here I use the average distance of a point from all of its neighbors avgDist =((Plus @@ #)/(Length[pts]-1))& /@ Table[dist[pts[[k]], #]& /@ pts, {k, Length[pts]}]; Using the average distance as the z coordinate ptsDist = Partition[Flatten[Transpose[{pts, avgDist}]], 3]; Needs["Graphics`Graphics3D`"]; Plotting the two-dimensional points ListPlot[pts, PlotRange -> {{0, 1}, {0, 1}}, PlotStyle -> AbsolutePointSize[3]]; Using the average distance as the z coordinate ScatterPlot3D[ptsDist, PlotRange -> {{0, 1}, {0, 1}, Automatic}, PlotStyle -> AbsolutePointSize[3]]; Ordering points by increasing average distance (z coordinate) and joining the plot ScatterPlot3D[Sort[ptsDist, #1[[3]] < #2[[3]]&], PlotRange -> {{0, 1}, {0, 1}, Automatic}, PlotStyle -> {RGBColor[1, 0, 0], AbsoluteThickness[2]}, PlotJoined -> True, ViewPoint -> {1.5, -2.4, 1.}]; You will need to play with the ViewPoint to get the best viewing angle for a given set of points. As expected, points near the center of the points have smaller average distance than those out at the edges. Bob Hanlon