JFreeChart Scatter-Plot-Linien

Ich versuche, ein Diagramm mit JFreeChart, aber nicht Holen Sie sich die Linien Recht. Anstelle der Verbindung der Punkte in der Reihenfolge in der ich Sie habe, Sie verbindet die Punkte in der Reihenfolge Ihrer x-Werte. Ich bin mit ChartFactory.createScatterPlot zu erstellen, die Handlung und XYLineAndShapeRenderer um die Linien sichtbar.

/edit: sscce:

package test;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.ui.ApplicationFrame;

public class PlotTest {
    private XYSeriesCollection dataset;

    public static void main (String[] args) {
        new PlotTest();
    }

    public PlotTest () {
        dataset = new XYSeriesCollection();
        XYSeries data = new XYSeries("data");
        data.add(3, 2); //Point 1
        data.add(1, 1); //Point 2
        data.add(4, 1); //Point 3
        data.add(2, 2); //Point 4
        dataset.addSeries(data);
        showGraph();
    }

    private void showGraph() {
        final JFreeChart chart = createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        final ApplicationFrame frame = new ApplicationFrame("Title");
        frame.setContentPane(chartPanel);
        frame.pack();
        frame.setVisible(true);
    }

    private JFreeChart createChart(final XYDataset dataset) {
        final JFreeChart chart = ChartFactory.createScatterPlot(
            "Title",                  //chart title
            "X",                      //x axis label
            "Y",                      //y axis label
            dataset,                  //data
            PlotOrientation.VERTICAL,
            true,                     //include legend
            true,                     //tooltips
            false                     //urls
        );
        XYPlot plot = (XYPlot) chart.getPlot();
        XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setSeriesLinesVisible(0, true);
        plot.setRenderer(renderer);
        return chart;
    }

}

Nun möchte ich das Programm verbindet die Punkte in der Reihenfolge 1-2-3-4, das ist die Reihenfolge, fügte ich Sie zu meinem dataset. Aber ich werde Sie in der Reihenfolge angeschlossen 2-4-1-3, sortiert nach der x-Wert.

InformationsquelleAutor hvitedragonfire | 2011-03-13

Schreibe einen Kommentar