2D-Grafik Scatterplot mit Pfeilen

Paul82

Mitglied
Hallo zusammen,

ich bin absoluter Java-Anfänger und verzweifle seit Tagen an folgendem Problem. Ich suche eine Möglichkeit zur Visuallisierung eines gerichteten Graphen, der aus

1. Knoten K(x,y) mit Beschriftung
2. Pfeilen bzw. gerichtete Kanten K(P1,P2), die ich hinzufügen und wieder entfernen kann

besteht.

Der Graph muss zoombar oder sowas ähnliches sein. Tooltips zu den Knoten wären schön, aber nur "Luxus". Wichtig wäre, das der Graph schnell und einfach im Programmablauf aktualisiert werden kann. Meine Suche bei Google brachte mich zu JFreeChart, JMathplot, JGraphx, JGrapht, usw. aber keines der Packages funktioniert so, wie ich es brauche. :bahnhof:

Mit JFreeChart bzw. JMathPlot kann zwar wie benötigt Plotten, aber ich verzweifle an den gerichteten Kanten. Hat vielleicht jemand eine Idee, wie bzw. womit ich das Problem lösen kann?


Vielen Dank & Grüße
Paul
 

Paul82

Mitglied
Hi,
danke für die schnelle Reaktion, Zest kannte ich wirklich noch nicht.
Zu "ein bißchen was selber machen": ich weiß leider nicht wie? Ich habe bei JMathplot bspw. die drawline Methode gefunden. Schön wäre es, wenn ich diese einfach überschreiben könnte, so dass sie einen Pfeil statt einer Line zeichnet. Die Methode ist in einer Klasse implementiert, die ziemlich verschachtelt von meinen Graph-Objekt verwendet wird. Kann ich diese Methode überhaupt gezielt überschreiben?

Danke und Grüße
 

Marco13

Top Contributor
Nun, ich kenne JMathPlot nicht, und auch sonst ist es u.U. schwer, sich bei einer solchen Bibliothek auf die Schnelle in Details reinzufräsen. Vermutlich wäre es einfacher mit einer Bibliothek, bei der das Zeichnen der Verbindungslinien explizit durch einen "Custom renderer" verändert werden kann (oder wenn die Bibliothek von vornherein Pfeile unterstützt). Was soll das eigentlich werden - eine Mischung aus Scatterplot und Graphenvisualisierung? ???:L
 

Paul82

Mitglied
Ich möchte eine Heuristik zur Lösung eines Vehicle Routing Problems entwickeln. Kurz gesagt besteht die Aufgabe darin, die optimale Route(=Pfeile) zu finden, um gegebene, räumlich verteilte Kunden (=Knoten) zu beliefern. Das Ganze dient dabei nur zur Visualisierung während der Entwicklung und soll selbst keinerlei eigene Logik haben.
 

Marco13

Top Contributor
Also hat das mit einem Scatterplot (meiner Defintion nach) nicht viel zu tun. Hast du dir mal Beispiele angesehen? Ich will die JUNG nicht empfehlen (dazu habe ich zu wenig überblick über die pros und cons und die anderen), aber ein Beispiel könnte sowas sein wie dieses Applet: JUNG Demo: Advanced Edge Labels - Ggf. kann man sowas einfach rauskopieren und anpassen. Wenn die Visualisierung nicht das Hauptziel sondern eher ein Hilfsmittel ist, kann man das ja als "Black box" ansehen (und darauf achten, dass man es gut vom eigentlichen Programm trennt).
 

Paul82

Mitglied
Ne, ich dachte nur wegen der Darstellung von Punkten P(x,y) an einen 2D-Scatter.
Ich hab inzwischen 2 Lösungen gefunden: JUNG und Piccolo. Beide eignen sich zur Visualisierung einer "Punktwolke mit Pfeilen" mit Zoom- und Tooltip-Funktion. Jung sieht "schöner" aus, ist aber bei vielen Knoten und Kanten eher langsam (was aber wahrscheinlich an meiner Umsetzung liegt). Bei Piccolo (Piccolo2D - A Structured 2D Graphics Framework) ist die Darstellung schlichter, erfüllt aber alle Anforderungen und ist dabei deutlilch schneller. :toll:
Trotzdem vielen Dank für den JUNG Tipp!
Grüße
 

Ähnliche Java Themen

Neue Themen


Oben