Drawing two-dimensional scatter plots

I have a list of objects (maybe no more than 100), where each object has a distance to all other objects. This distance is simply the added absolute difference between all the fields that these objects share. There can be several (one) or many (tens) fields, so the dimension of the distance is not important.

I would like to display these points in 2D graphics so that objects with a small distance are close to each other. I hope this clearly shows how many subgroups are in the whole list. Obviously, the axes of this graph do not make sense (I'm not even sure that the β€œgraph” is the right word to use).

What would be a good algorithm for converting a distance network into a two-dimensional distribution of points? Ideally, I would like to change the remote network a bit to bring about a small change in the schedule, so that gradual progress can be seen as a smooth change over time.

I made a small example of the result I'm looking for: Graphic Example http://en.wiki.mcneel.com/content/upload/images/GraphExample.png

Any ideas really appreciated, David


Edit:

It actually worked. I consider the whole set of values ​​as a cloud of 2D particles, construct the inverse square repulsive forces between all particles and linear attraction forces based on the reciprocal distance. This is not a stable algorithm, the result tends to be strongly compressed whenever an additional iteration is performed, but it always creates a good separation into visual clusters:

alt text http://en.wiki.mcneel.com/content/upload/images/ParticleCloudSolution.png

I can post C # code if anyone is interested (there is quite a lot of sadness there)

+5
source share
3 answers

Graphviz ; spring . , .

+2

Google , :

  • ;
  • .

GraphViz , , - .

- .

+1

, , , , , , , .

I think you need to read a little in cluster analysis, because there are algorithms for sorting your points in clusters based on the metric of correspondence, and then you can use graphviz or something like that to draw the results. http://en.wikipedia.org/wiki/Cluster_analysis

I really like the sectioning algorithm with a minimal cut, see here: http://en.wikipedia.org/wiki/Cut_(graph_theory)

+1
source

All Articles