Hilfe mit JFreeChart-Overlay

8

Ich habe ein Problem mit einem überlagerten JFreeChart-Diagramm. Ich benutze JFreeChart 1.0.13. Was ich versuche, scheint in früheren Versionen von JFreeChart einfacher zu sein?

Das Diagramm zeigt ein Liniendiagramm und ein Balkendiagramm. Der vom Liniendiagramm für die Y-Achse gezeichnete Datenbereich liegt im Bereich 0-100 und die Achse für das Balkendiagramm im Bereich 0-5.

Individuell, wenn ich jedes Diagramm auslege und es male, sehen sie großartig aus. Hier ist ein Beispiel:

Balkendiagramm Liniendiagramm

Aber wenn ich sie überlagere, wird das Balkendiagramm verkleinert, um unglaublich unbrauchbar zu sein ... vermutlich weil die Skalen der zwei Datensätze so unterschiedlich sind.

Beispiel:

Was ich wirklich will, ist, die Reihendaten für die zwei Datensätze zu teilen und den Bereich 0-100 für das Liniendiagramm auf der linken Y-Achse anzuzeigen und das Balkendiagramm in voller Größe anzuzeigen, wie in meinem ersten Beispiel unten , aber die Skala 0-5 wird auf der rechten Seite der Y-Achse des Diagramms angezeigt.

Um das Diagramm zu erstellen, erstelle ich zuerst das Balkendiagramm mit einer XYSeriesCollection, füge die Daten hinzu und erstelle das Diagramm ...

%Vor%

Dann erstelle ich das Liniendiagramm auf ähnliche Weise und füge die zweite Serie dem Plot hinzu ...

%Vor%

Mein Verdacht ist, dass irgendwie jeder Graph sein eigener Plot sein muss und kombiniert werden muss. Kann jemand helfen? Was ich hier mache, ist etwa so:

Ich möchte jedoch nicht, dass das Balkendiagramm ein Hintergrundbild ist. Die X-Achse sollte identisch sein und die Y-Achse sollte auf der rechten Seite mit der richtigen Skalierung liegen, damit der Graph in voller Größe angezeigt werden kann.

Alle / alle Antworten werden geschätzt ...

    
Griff 13.09.2010, 15:53
quelle

1 Antwort

6

Ich sehe, dass Sie einen zweiten Datensatz und Renderer zu Ihrem Plot hinzufügen, aber Sie zwingen sie, die gleiche Bereichsachse zu verwenden. Stattdessen geben Sie dem Diagramm einen neuen NumberAxis für den Bereich des zweiten Datensatzes .

Als Nebenbemerkung sollten Sie das Beispiel der Achse in der JFreeChart-Demo nicht übersehen und unterschätzt nicht den Wert des JFreeChart-Entwicklerleitfadens .

    
trashgod 14.09.2010, 01:06
quelle

Tags und Links