AWT [JFreeChart] malt nicht so wie ich will :-(

Booyeoo

Mitglied
Hallo Zusammen,

ich hoffe hier kennt sich jemand mit der JFreeChart Bibliothek aus ansonsten bitte an das richtige Forum verweisen.

Jedenfalls ergibt der Teil hier unten nicht das was ich will und zwar werden die Achsen nicht entsprechend der Kurven farblich markiert sondern total sondersam. Ich weiß nicht wo die Farbe cyan herkommt!!! Muss irgendwie eine zufallsgenerierte Farbe sein.
X, Y und Z sind richtig gemappt und farblich markiert, TX TY und TZ sind irgendwie falsch, da die Achse von TX schwarz ist, die kurve dazu aber gelb (orange) markiert ist. Genauso mit TY hier ist die entsprechende kurve magenta, aber die achse gelb(orange), zu guter letzt ist TZ als Linie cyan aber in der achse magenta. alles irgendwie um eins verrückt, aber wieso :-/ ich finde den fehler seit stunden einfach nicht..

ich habe mich versucht stark an die tutorial beispiele zu halten und mit xyz hat es auch geklappt aber ich verstehe nicht wieso es mit den zusätzlich tx ty und tz nicht klappt obwohl ich die einfach komplett analog eingebunden hat... das ist soo unlogisch.

http://s1.directupload.net/images/100507/wfjs3vg8.png

Java:
private void createSeriesChartXYZ(Double[] sourceSeries1, Double[] sourceSeries2,
            Double[] sourceSeries3, JTabbedPane output, DefaultMutableTreeNode node) {
        XYSeries xys3 = null, xys4 = null, xys5 = null;
        //  erstelle datensätze

        XYSeries xys0 = new XYSeries("X");
        XYSeries xys1 = new XYSeries("Y");
        XYSeries xys2 = new XYSeries("Z");
        if (node.toString().equals("root")) {
            xys3 = new XYSeries("TX");
            xys4 = new XYSeries("TY");
            xys5 = new XYSeries("TZ");
        }
        int i = 0;

        for (double key : sourceSeries1) {
            xys0.add(i++, key);
        }
        i = 0;
        for (double key : sourceSeries2) {
            xys1.add(i++, key);
        }
        i = 0;
        for (double key : sourceSeries3) {
            xys2.add(i++, key);
        }

        if (node.toString().equals("root")) {
            Double[] tx = new Double[(stmAMCSeries.get(node.toString()).get("TX").size())],
                    ty = new Double[(stmAMCSeries.get(node.toString()).get("TY").size())],
                    tz = new Double[(stmAMCSeries.get(node.toString()).get("TZ").size())];
            stmAMCSeries.get(node.toString()).get("TX").toArray(tx);
            stmAMCSeries.get(node.toString()).get("TY").toArray(ty);
            stmAMCSeries.get(node.toString()).get("TZ").toArray(tz);
            i = 0;
            for (double key : tx) {
                xys3.add(i++, key);
            }
            i = 0;
            for (double key : ty) {
                xys4.add(i++, key);
            }
            i = 0;
            for (double key : tz) {
                xys5.add(i++, key);
            }
        }

        // erstelle zeitreihen

        XYSeriesCollection xydata0 = new XYSeriesCollection();
        XYSeriesCollection xydata1 = new XYSeriesCollection();
        XYSeriesCollection xydata2 = new XYSeriesCollection();
        XYSeriesCollection xydata3 = new XYSeriesCollection();
        XYSeriesCollection xydata4 = new XYSeriesCollection();
        XYSeriesCollection xydata5 = new XYSeriesCollection();

        xydata0.addSeries(xys0);
        xydata1.addSeries(xys1);
        xydata2.addSeries(xys2);   
        if (node.toString().equals("root")) {
            xydata3.addSeries(xys3);
            xydata4.addSeries(xys4);
            xydata5.addSeries(xys5);
        }


        //  erstelle chart
        JFreeChart chart = ChartFactory.createXYLineChart(
                "Joint Angle Progression", // titel
                "Frame", //xachse
                "Angle", //yachse
                xydata0, //daten
                PlotOrientation.VERTICAL, //orientierung
                true, //  legend?
                true, //  tooltips?
                false //  URLs?
                );

        XYPlot plot = chart.getXYPlot();

        chart.setBackgroundPaint(Color.white);
        plot.setOrientation(PlotOrientation.VERTICAL);
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRangeGridlinePaint(Color.white);

        final StandardXYItemRenderer renderer = new StandardXYItemRenderer();
        renderer.setBasePaint(Color.black);

        NumberAxis axis0 = new NumberAxis("");
        NumberAxis axis1 = new NumberAxis("");
        NumberAxis axis2 = new NumberAxis("");
        NumberAxis axis3 = new NumberAxis("");
        NumberAxis axis4 = new NumberAxis("");
        NumberAxis axis5 = new NumberAxis("");

        // Setzen der Grenzen der Achsen
        Range r0 = null, r1 = null, r2 = null;
        if (!(node.toString().equals("root"))) {
            if (lhmASF.get(":bonedata" + node.toString() + "limits")[0] != null && lhmASF.get(":bonedata" + node.toString() + "limits")[1] != null) {
                r0 = new Range(Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[0]),
                        Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[1]));
            }
            if (lhmASF.get(":bonedata" + node.toString() + "limits")[2] != null && lhmASF.get(":bonedata" + node.toString() + "limits")[3] != null) {
                r1 = new Range(Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[2]),
                        Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[3]));
            }
            if (lhmASF.get(":bonedata" + node.toString() + "limits")[4] != null && lhmASF.get(":bonedata" + node.toString() + "limits")[5] != null) {
                r2 = new Range(Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[4]),
                        Double.parseDouble(lhmASF.get(":bonedata" + node.toString() + "limits")[5]));
            }
        }

        if (r0 != null) {
            axis0.setRange(r0);
        }
        if (r1 != null) {
            axis1.setRange(r1);
        }
        if (r2 != null) {
            axis2.setRange(r2);
        }
        if (node.toString().equals("root")) {
            axis3.setRangeWithMargins(xydata3.getRangeBounds(true));
            axis3.setAutoRangeIncludesZero(false);
            axis4.setRangeWithMargins(xydata4.getRangeBounds(true));
            axis4.setAutoRangeIncludesZero(false);
            axis5.setRangeWithMargins(xydata5.getRangeBounds(true));
            axis5.setAutoRangeIncludesZero(false);
        }

        // Achsen beschriften und einfärben
        axis0.setLabelPaint(Color.red);
        axis1.setLabelPaint(Color.blue);
        axis2.setLabelPaint(Color.green);
        if (node.toString().equals("root")) {
                axis3.setLabelPaint(Color.black);
                axis4.setLabelPaint(Color.orange);
                axis5.setLabelPaint(Color.magenta);
        }


        axis0.setTickLabelPaint(Color.red);
        axis1.setTickLabelPaint(Color.blue);
        axis2.setTickLabelPaint(Color.green);
        if (node.toString().equals("root")) {
                axis3.setTickLabelPaint(Color.black);
                axis4.setTickLabelPaint(Color.orange);
                axis5.setTickLabelPaint(Color.magenta);
        }

        plot.setRangeAxis(0, axis0);
        plot.setRangeAxis(1, axis1);
        plot.setRangeAxis(2, axis2);
        if (node.toString().equals("root")) {
            plot.setRangeAxis(3, axis3);
            plot.setRangeAxis(4, axis4);
            plot.setRangeAxis(5, axis5);
        }
        
        // Achsenpostionen bestimmen
        plot.setRangeAxisLocation(0, AxisLocation.BOTTOM_OR_LEFT);
        plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_LEFT);
        plot.setRangeAxisLocation(2, AxisLocation.BOTTOM_OR_LEFT);
        if (node.toString().equals("root")) {
            plot.setRangeAxisLocation(3, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setRangeAxisLocation(4, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setRangeAxisLocation(5, AxisLocation.BOTTOM_OR_RIGHT);
        }

        // Datensätze auf Chart einbinden
        
        plot.setDataset(1, xydata1);
        plot.setDataset(2, xydata2);
        if (node.toString().equals("root")) {
            plot.setDataset(3, xydata3);
            plot.setDataset(4, xydata4);
            plot.setDataset(5, xydata5);
        }

        
        plot.mapDatasetToRangeAxis(1, 1);
        plot.mapDatasetToRangeAxis(2, 2);
        if (node.toString().equals("root")) {
            plot.mapDatasetToRangeAxis(3, 3);
            plot.mapDatasetToRangeAxis(4, 4);
            plot.mapDatasetToRangeAxis(5, 5);
        }

        plot.setRenderer(1, new StandardXYItemRenderer());
        plot.getRenderer(1).setSeriesPaint(1, Color.blue);
        plot.setRenderer(2, new StandardXYItemRenderer());
        plot.getRenderer(2).setSeriesPaint(2, Color.green);
        if (node.toString().equals("root")) {
            plot.setRenderer(3, new StandardXYItemRenderer());
            plot.getRenderer(3).setSeriesPaint(3, Color.black);
            plot.setRenderer(4, new StandardXYItemRenderer());
            plot.getRenderer(4).setSeriesPaint(4, Color.orange);
            plot.setRenderer(5, new StandardXYItemRenderer());
            plot.getRenderer(5).setSeriesPaint(5, Color.magenta);
        }

        // mache chart sichtbar
        ChartPanel cp1 = new ChartPanel(chart);
        output.add(cp1, 0);
        output.setTitleAt(0, node.toString());
        output.setSelectedIndex(0);
    }

Danke für jede Antwort.
Grüße
 

srea

Bekanntes Mitglied
Es ist schon ne Weile her das ich mit JFreeChart gearbeitet hab, aber ich glaube das Problem hatte ich auch.

Schau mal bitte ob sich was ändert, wenn du
Java:
plot.getRenderer(1).setSeriesPaint(0, Color.blue);
machst. //Edit: Das ganze natürlich bei allen Series. (Die Änderung ist übrigens die 0)

Ansonsten wird dir im JFreeChart Forum auch immer gut geholfen.
 
Zuletzt bearbeitet:

Booyeoo

Mitglied
Es ist schon ne Weile her das ich mit JFreeChart gearbeitet hab, aber ich glaube das Problem hatte ich auch.

Schau mal bitte ob sich was ändert, wenn du
Java:
plot.getRenderer(1).setSeriesPaint(0, Color.blue);
machst. //Edit: Das ganze natürlich bei allen Series. (Die Änderung ist übrigens die 0)

Ansonsten wird dir im JFreeChart Forum auch immer gut geholfen.

Perfekt so einfach kanns sein.... ;-) vielen vielen Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JFreeChart X-Achse Werte skalieren, begrenzen, zoomen AWT, Swing, JavaFX & SWT 5
H JFreeChart BarDiagramm Balken der gleichen Serie unterschiedliche Farbe zuordnen AWT, Swing, JavaFX & SWT 2
H JFreeChart - DemoDataSetFactory Probleme AWT, Swing, JavaFX & SWT 1
H JFreeChart Charts überlagern AWT, Swing, JavaFX & SWT 2
C JFreeChart x-Achse mit absteigenden Werten AWT, Swing, JavaFX & SWT 1
K JFreeChart nicht ohne BarChartDemo startklar? AWT, Swing, JavaFX & SWT 5
T 2D-Grafik JFreeChart mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
D Swing JFreeChart Crosshair Label - setPreferredSize oder ähnliches, aber wo ? AWT, Swing, JavaFX & SWT 1
N jFreeChart einzelne Punkte anwählen und Formatieren AWT, Swing, JavaFX & SWT 0
B JFreeChart Gantt Höhe Tasks AWT, Swing, JavaFX & SWT 1
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
V JFreechart: In Linechart Linien einzeichnen und Bereiche färben AWT, Swing, JavaFX & SWT 4
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
M JFreechart Zoom out AWT, Swing, JavaFX & SWT 2
M Swing JFreechart X-Achse Tick auslesen AWT, Swing, JavaFX & SWT 13
M Swing JFreechart zoom x-achse neue Werte AWT, Swing, JavaFX & SWT 4
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Diagramm mit jfreechart quadratisch erstellen AWT, Swing, JavaFX & SWT 1
D JFreeChart range der Y Achse verändern. AWT, Swing, JavaFX & SWT 1
G JFreeChart - SetSeriesColor Problem AWT, Swing, JavaFX & SWT 3
K 2D-Grafik JFreeChart plot.setBackgroundImage() AWT, Swing, JavaFX & SWT 1
K 2D-Grafik JFreeChart DateAxis AWT, Swing, JavaFX & SWT 9
T Event Handling JFreeChart Update AWT, Swing, JavaFX & SWT 2
A JFreeChart BarChart invertierte anzeige oder werte bereich von-bis AWT, Swing, JavaFX & SWT 4
Farbtopf Live update JFreeChart AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
D JFreeChart - aktuelle code beispiele AWT, Swing, JavaFX & SWT 11
M JFreeChart in ein File schreiben (bzw. JFrame in ein File Schreiben) AWT, Swing, JavaFX & SWT 2
A JFreeChart in GUI AWT, Swing, JavaFX & SWT 3
E JFreeChart: Timeseries-Chart und Area-Chart "überlappen" lassen AWT, Swing, JavaFX & SWT 6
B JFreeChart-Erweiterungen AWT, Swing, JavaFX & SWT 4
E JFreeChart in einer dynamischen Aufzeichnung neue Serien hinzufügen? AWT, Swing, JavaFX & SWT 7
I XML - JFreeChart AWT, Swing, JavaFX & SWT 15
N Dynamische JFreechart updated UI nicht AWT, Swing, JavaFX & SWT 5
S JFreeChart - Schriftgröße der Legende AWT, Swing, JavaFX & SWT 2
O Swing JFreechart subtitle formatieren AWT, Swing, JavaFX & SWT 3
N JFreeChart: Plot soll mit skalieren AWT, Swing, JavaFX & SWT 5
R JFreeChart Plots AWT, Swing, JavaFX & SWT 6
J JFreechart spezielles Balkendiagramm AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
T JFreeChart Linine einzeichnen AWT, Swing, JavaFX & SWT 2
M JFreeChart Ausrichtung der Balken AWT, Swing, JavaFX & SWT 2
R jFreeChart in eine NetBeans Projekt integrieren AWT, Swing, JavaFX & SWT 24
D JFreeChart Breite (width) ändern AWT, Swing, JavaFX & SWT 6
A Swing JFreeChart, Gantt, Schichtplan AWT, Swing, JavaFX & SWT 3
R JFreeChart Skalierung zur Laufzeit ändern AWT, Swing, JavaFX & SWT 7
F Wie lade ich eine CategoryDataset aus XML ins JFreeChart? AWT, Swing, JavaFX & SWT 9
J JFreeChart - mehrere Y-Achsen AWT, Swing, JavaFX & SWT 2
A JFreeChart: 2 X-Achsen für ein Dataset AWT, Swing, JavaFX & SWT 2
T JFreeChart export Problem AWT, Swing, JavaFX & SWT 4
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
D JFreechart maximalangezeigter Wertebereich AWT, Swing, JavaFX & SWT 3
B JFreeChart Balkendiagramm ActionEvent AWT, Swing, JavaFX & SWT 2
L Labels sichtbar - JFreeChart AWT, Swing, JavaFX & SWT 5
A Schachbrettartiges Diagramm mit JFreeChart AWT, Swing, JavaFX & SWT 4
E JFreeChart AWT, Swing, JavaFX & SWT 2
L Gantt Chart - JFreeChart AWT, Swing, JavaFX & SWT 5
K JFreeChart im JScrollPane ausblenden AWT, Swing, JavaFX & SWT 2
L JFreeChart Labelrotation AWT, Swing, JavaFX & SWT 2
L JFreeChart Farbe von Balken AWT, Swing, JavaFX & SWT 5
L JFreeChart Balkenanordnung AWT, Swing, JavaFX & SWT 10
L JFreeChart Achsenskalierung AWT, Swing, JavaFX & SWT 4
L JFreeChart - Dataset befüllen AWT, Swing, JavaFX & SWT 2
L JFreeChart - Line Shapes AWT, Swing, JavaFX & SWT 15
N JFreeChart - Basics AWT, Swing, JavaFX & SWT 2
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
L JFreeChart - Legende vertikal AWT, Swing, JavaFX & SWT 5
L JFreeChart - Linienstärke einstellen AWT, Swing, JavaFX & SWT 2
L JFreeChart Einstellungen AWT, Swing, JavaFX & SWT 22
L JFreeChart - Gitterfarbe schwarz AWT, Swing, JavaFX & SWT 4
L JFreeChart StackedBar + Line-Chart kombinieren AWT, Swing, JavaFX & SWT 4
L JFreeChart - Performance bei PNG-Erstellung AWT, Swing, JavaFX & SWT 5
L JFreeChart - Legende beliebig positionieren AWT, Swing, JavaFX & SWT 16
G JFreechart Balken einfärben AWT, Swing, JavaFX & SWT 6
F Probleme mit NumberAxis bei JFreeChart AWT, Swing, JavaFX & SWT 5
G jfreechart (Diagramm speichern mit ein vorgegebenen Namen) AWT, Swing, JavaFX & SWT 6
S JFreeChart neu zeichnen sich das Datenset geändert hat. AWT, Swing, JavaFX & SWT 4
K JFreeChart Eigentschaften des Charts ändern AWT, Swing, JavaFX & SWT 8
G JFreeChart und das updaten AWT, Swing, JavaFX & SWT 7
G Ausser Jfreechart, Chart Programme? AWT, Swing, JavaFX & SWT 11
S Dimensionen JFreeChart AWT, Swing, JavaFX & SWT 5
S JFreeChart Stufendiagramm AWT, Swing, JavaFX & SWT 2
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K JFreeChart: Platz zwischen Balken AWT, Swing, JavaFX & SWT 3
M JFreeChart Handbuch? AWT, Swing, JavaFX & SWT 8
P JFreeChart - TimeSeriesDiagram AWT, Swing, JavaFX & SWT 2
R paintComponent malt bei repaint() Rahmen um Panel AWT, Swing, JavaFX & SWT 7
D Swing malt nicht AWT, Swing, JavaFX & SWT 4
R JComponent malt seine Kinder nicht AWT, Swing, JavaFX & SWT 8
richis-fragen Spaltenbreite bei drag nicht änderbar AWT, Swing, JavaFX & SWT 4
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben