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)
source
share