language agnostic - Drawing two-dimensional point-graphs -
i've got list of objects (probably not more 100), each object has distance other objects. distance merely added absolute difference between fields these objects share. there might few (one) or many (dozens) of fields, dimensionality of distance not important.
i'd display these points in 2d graph such objects have small distance appear close together. i'm hoping convey how many sub-groups there in entire list. axes of graph meaningless (i'm not sure "graph" correct word use).
what algorithm convert network of distances 2d point distribution? ideally, i'd small change distance network result in small change in graphic, incremental progress can viewed smooth change on time.
i've made small example of sort of result i'm looking for: example graphic http://en.wiki.mcneel.com/content/upload/images/graphexample.png
any ideas appreciated, david
edit:
it seems have worked. treat entire set of values 2d particle cloud, construct inverse square repulsion forces between particles , linear attraction forces based on inverse distance. it's not stable algorithm, result tends spin violently whenever additional iteration performed, seem generate separation visual clusters:
alt text http://en.wiki.mcneel.com/content/upload/images/particlecloudsolution.png
i can post c# code if interested (there's quite lot of sadly)
graphviz contains implementations of several different approaches solving problem; consider using spring model graph layout tools basis solution. alternatively, site contains a collection of source material on related theory.
Comments
Post a Comment