Dendrogramm

Status
Nicht offen für weitere Antworten.

anton

Mitglied
In diesem Forum wurden zwar schon mehrere Fragen zu Dendrogrammen gestellt, welche meist mit den Verweisen auf google und Graph-Libraries "beantwortet" worden sind. Heute habe ich nichts anderes gemacht und bin mit den gefundenen Libraries nicht allzu glücklich, die meisten sind mir einfach viel zu umfangreich.

Was ich benötige ist ein Dendrogramm aus Objekten mit mehreren Eigenschaften. Jedes Knotenobjekt kennt seine Kinderknoten, aber nicht den Vatersknoten. Jedes Objekt hat merhere Infomationen, die evtl. auch als Tooltip dargestellt werden könnten. Außerdem soll der Benutzer eine Zahl angeben können, nach der Eingabe soll die Differenz eines Attributes zwischen dem Vaterknoten und seinen Kindknoten gebildet werden. Vatersknoten, deren Differenz unter dem von Benutzer angegebenen Wert liegt, soll von den Vatersknoten, die drüber liegen optisch abgegrenzt (Eine Trennlinie oder Farbe der Knoten) und gezählt werden.

Desahlb eine Frage an Leute, die sich schon mal damit beschäftigten - gibt es eine sehr kompakte Library, die ich ohne viel Einarbeitung nutzen kann, um das Gewünschte zu erreichen oder müsste man dies selbst umsetzen? Wie aufwändig wäre so was und wie geht man dies am besten an?
 

AlArenal

Top Contributor
Okay, dann erwähne ich prefuse eben nicht nochmal :p

BTW, eine hcohspezialisierte und dennoch einsteigerfreundliche Lib wirst du lange suchen müssen, falls es denn überhaupt eine gibt.
 

anton

Mitglied
AlArenal hat gesagt.:
Okay, dann erwähne ich prefuse eben nicht nochmal :p

Prefuse habe ich auch geladen (dank deienr Hinweise in anderen Threads), aber es ist recht umfangreich... Kann denn prefuse aus deienr Sicht, als Kenner dieser Library, das von mir gewünschte möglichst simpel umsetzen? Ich habe das Beispielfile von Prefuse aufgemacht und wurde erstmal durch die Ellenbogenlange Liste der Imports erschlagen und ich möchte ja bloß meine bestehende Objekte irgendwie grafisch abbilden, ohne dabei die Innereien eines Tools im Detail kennen zu lernen.
 

AlArenal

Top Contributor
Dann baust du dir eben deinen eigene DendogramData, DendogramRenderer, DendogramXYZ, packst die in ein Package und schwupss braucht alles, was darauf aufbaut nur noch eine handvoll Imports, oder gar gar keine, wenn es im selben Package ist.. ;)

Im Ernst:
Was du suchst ist eine sehr spezielle Form eines sehr allgemeinen Sachverhalts. Es ist natürlich, gerade in der Welt von OOP, dass man am Ende eben ein sehr spezielles Stück Software entwickelt, dass auf recht allgemeinem Kram aufbaut. So funktioniert das Ganze eben. Selbst wenn ich sowas spezielles selbst entwickeln müsste, würde ich als Basis doch irgendwas allgemeines entwickeln und das dann intern spezialsieren - schon hast du wieder eine "ellebogenlange Liste von Imports"... wobei.. mal ganz korinthenkackermäßig: Wie lang ist ein Ellenbogen?

Ich denke du verstehst, worauf ich hinaus will. Es gibt nunmal keinen Wald ohne Bäume...

Du willst es ja auch in Java machen und nicht in einer DSL (domain specific language), nennen wir sie mal Dendrogizer...
 

anton

Mitglied
AlArenal hat gesagt.:
Im Ernst:
Was du suchst ist eine sehr spezielle Form eines sehr allgemeinen Sachverhalts.

Das sehe ich ganz anders. :)
Meine Berechnung ist natürlich spezifisch, aber die Darstellung und Zuweisung von zusätzlichen Infomationen einem Graphelement ist ein allgemeines, wiederkehrendes Problem.

Das Vorhaben der Visualisierung habe ich erst aufgegeben, aber nachdem ich das dritte Blatt von Hand bemalt habe, um Konsolenausgabe besser interpretieren zu können habe ich doch noch erneut nach irgendetwas einigermaßen verwendbaren gesucht und bin fündig geworden.

Mit JUNG http://jung.sourceforge.net/ kann ich prinzipiell alle aktuellen Bedürfnisse erledigen - dem Knoten beliebige Daten zuweisen, einen Layout nutzen, um keine Angaben über Positionierung zu machen und das Aussehen und Verhalten von Knoten und Kanten bis ins Detail manipulieren. Also falls jemand so was benötigt, ist das Teil näherer Betrachtung wert.

Punkte, die gegen JUNG sprechen: Verwendung von zwei weiteren Bibliotheken und eine miserable, zum Teil schlichtweg falsche Dokumentation, aber mit zahlreichen Codebeispielen im Sourcecode kommt man nach einer Weile ans Ziel und die Ergebnsise lassen sich wirklich sehen.
 

AlArenal

Top Contributor
anton hat gesagt.:
AlArenal hat gesagt.:
Im Ernst:
Was du suchst ist eine sehr spezielle Form eines sehr allgemeinen Sachverhalts.

Das sehe ich ganz anders. :)
Meine Berechnung ist natürlich spezifisch, aber die Darstellung und Zuweisung von zusätzlichen Infomationen einem Graphelement ist ein allgemeines, wiederkehrendes Problem.

Und ich kenne keine halbwegs brauchbare Lib, die da keine Lösung für hat. Das geht von einem #setUserObject(Object) bis hin zu eigenen Nodes via Vererbung.

Mit JUNG http://jung.sourceforge.net/ kann ich prinzipiell alle aktuellen Bedürfnisse erledigen - dem Knoten beliebige Daten zuweisen, einen Layout nutzen, um keine Angaben über Positionierung zu machen und das Aussehen und Verhalten von Knoten und Kanten bis ins Detail manipulieren. Also falls jemand so was benötigt, ist das Teil näherer Betrachtung wert.

Muss ich mir mal in Ruhe anschauen. Ich sehe beim Überfliegen nichts, was man mit prefuse nicht ebenso erledigen könnte.

Punkte, die gegen JUNG sprechen: Verwendung von zwei weiteren Bibliotheken und eine miserable, zum Teil schlichtweg falsche Dokumentation, aber mit zahlreichen Codebeispielen im Sourcecode kommt man nach einer Weile ans Ziel und die Ergebnsise lassen sich wirklich sehen.

Naja, der Xerces muss es ja nicht unbedingt sein, wenn clientseitig eine VM ab 1.4.2 vorhanden ist. Die Jakarta Commons Collections gehören in jeden Haushalt und die Statistik-Lib.. naja.. wers braucht ;)

Interessanterweise gibts von Ende 2004 jung-prefuse-alpha-Sourcen ;)
 
Status
Nicht offen für weitere Antworten.

Oben