JFreeChart-Erweiterungen

brunnera

Mitglied
Liebe Leute,

ich arbeite mit jFreeChart und habe einen 2D Scatterplot implementiert (XYPlot). Ich kann standardmässig im Panel zoomen.
Nun habe ich 2 Dinge die ich gerne einbauen möchte, aber nach längerer Suche im Internet nichts dazu gefunden habe:

1. Ich würde gerne die Datenpunkte, die in aktuellen sichtbaren Fensterbereich sind (zb in einem gezoomten Bereich) per Mouse-Click bekommen (also x, y, z Werte).

2. Ich würde den plot gerne mit gedrückter rechter Mousetaste hin - und her bewegen können (also schieben!).

Kann mir jemand konkrete Hilfestellung leisten (zu einem oder beiden Themen)??

Freue mich auch eure Antworten!
 
Zuletzt bearbeitet von einem Moderator:
1. Ich würde gerne die Datenpunkte, die in aktuellen sichtbaren Fensterbereich sind (zb in einem gezoomten Bereich) per Mouse-Click bekommen (also x, y, z Werte).

Und wo ist da das Problem? Du kannst doch auf das (JPanel von JFreeChart) einen weiteren MausListener implementieren, oder den bisherigen erweitern und dir dann die Koordianten anzeigen lassen.

2. Ich würde den plot gerne mit gedrückter rechter Mousetaste hin - und her bewegen können (also schieben!).

auch hier sollte zumindest das zeichnen kein Problem sein. Dann müsste sich mal das Model von 2D Scatterplot ansehen und entsprechend der "Verschiebung" den Plot im Model auch ändern.

Kann mir jemand konkrete Hilfestellung leisten (zu einem oder beiden Themen)??

Wenn du Quellcode willst, dann stelle doch ein KSKB hier rein und zeig deine Versuche diese Probleme zu lösen.
 
also ich benutze JFreeChart auch schon seit Jahren und habe noch nirgends ein Beispiel gesehen
wie man Koordinaten abfragen kann oder manuell Verschiebung aufruft,
habe auch noch nicht speziell danach gesucht aber kann aktuell die Frage nachvollziehen,

wenn du irgendwelchen Code oder vor allem Links dazu posten könntest, dann mach das ruhig,
als KSKB ginge vielleicht etwas von
ChartJava
😉

edit:
Suche jfreechart mouse events

Richtung ChartEntity:
chartMouseClicked(ChartMouseEvent event)

kühne Berechnungen:
java - JFreeChart get mouse coordinates - Stack Overflow
 
Zuletzt bearbeitet von einem Moderator:
ich habe vor Jahren mal mit JFreeChart relativ intensiv gearbeitet und bin mir sicher, dass ich damals sowas implementiert hatte...und zwar als ToolTip. Oder war da schon ein ToolTip und wir haben das nur noch ergänzt..aber grundsätzlich war es ein ähnliches Prob, dass die Daten die angezeigt werden durch die konkreten Werte ergänzt werden sollte.
 
1. Ich würde gerne die Datenpunkte, die in aktuellen sichtbaren Fensterbereich sind (zb in einem gezoomten Bereich) per Mouse-Click bekommen (also x, y, z Werte).
Schreibe ein Objekt welches das ChartMouseListener Interface implementiert.
In der Methode chartMouseClicked(ChartMouseEvent event) holtst du dir aus dem ChartMouseEvent den JFreeChart mittels getChart() und aus dem JFreeChart den XYPlot mittels getXYPlot(). Dann gehst du über alle Datensätze des Plots, für jeden Datensatz über alle Serien, für jede Serie über alle items, und schaust ob die x und y Werte der items im Wertebereich der für den Datensatz zuständigen domain (x) und range (y) Achse liegen. Falls ja, kommt das item in die Liste.
Je nach Menge der Datenpunkte kann die Liste aber ziemlich lang werden. Um an die z-Werte zu kommen, müsstest du den XYDataset nach XYZDataset casten und für alle items aller Serien den z-Wert auslesen.

2. Ich würde den plot gerne mit gedrückter rechter Mousetaste hin - und her bewegen können (also schieben!).

Das klingt verdächtig nach nach dem Pan-feature welches mit 1.0.13 eingeführt wurde. Probier mal click und drag mit gedrückter Strg-Taste.
 

Neue Themen


Zurück
Oben