Java 有没有一种方法可以使用jfreechart快速绘制成千上万的数据?

Java 有没有一种方法可以使用jfreechart快速绘制成千上万的数据?,java,user-interface,charts,swt,jfreechart,Java,User Interface,Charts,Swt,Jfreechart,我正在尝试使用JavaSWT制作GUI程序 但是,我有问题 我在绘制图表时使用jfreechart。问题是,从10000到20000条数据需要在解析后绘制图表,绘制数据需要花费太多时间 目前正在开发中,仅显示部分数据时会出现延迟。我该怎么办?或者我应该使用不同于jfreechart的库 这就是我使用它的方式 private JFreeChart createChart(XYDataset dataset){ //create chart JFreeChart chart = ChartF

我正在尝试使用JavaSWT制作GUI程序

但是,我有问题

我在绘制图表时使用jfreechart。问题是,从10000到20000条数据需要在解析后绘制图表,绘制数据需要花费太多时间

目前正在开发中,仅显示部分数据时会出现延迟。我该怎么办?或者我应该使用不同于jfreechart的库

这就是我使用它的方式

private JFreeChart createChart(XYDataset dataset){ //create chart
    JFreeChart chart = ChartFactory.createXYLineChart(
            "", "km", "db", dataset,
            PlotOrientation.VERTICAL, true, true, false);

    XYPlot plot = chart.getXYPlot();

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(true, false);
    renderer.setSeriesPaint(0, Color.RED);

    int seriesCount = plot.getSeriesCount();
      for (int i = 0; i < seriesCount; i++) {
        plot.getRenderer().setSeriesStroke(i, new BasicStroke(1));
      }

    ...setting plots 

    chart.setTitle(new TextTitle("test", new Font("Serif", java.awt.Font.BOLD, 18)));
    //ChartUtilities.saveChartAsPNG(new File("line_chart.png"), chart, 1920, 1080);
    return chart;

}


private XYDataset createDataset(double[] x, double[] y) {// create dataset  
    XYSeries series = new XYSeries("A");

    for(int i = 0; i<x.length; i= i+5) {   // i+5 for developing
        series.add(x[i],y[i]);
    }

    XYSeriesCollection dataset = new XYSeriesCollection();
    dataset.addSeries(series);

    return dataset;

}

mntmOpen.addListener(SWT.Selection, new Listener() { // file open listener
        @Override
        public void handleEvent(Event e) {

            ...open file and parsing. and update values 

            chart = createChart(createDataset(xDataArray1,yDataArray1)); // over 10,000 point chart
            frame.setChart(chart); // setting chart 
            shell.open(); 
        }
    });
private JFreeChart createChart(XYDataset数据集){//创建图表
JFreeChart chart=ChartFactory.createXYLineChart(
“,”km“,”db“,”数据集,
PlotOrientation.VERTICAL,true,true,false);
XYPlot=chart.getXYPlot();
XylineandShaperEnder渲染器=新的XylineandShaperEnder(真、假);
渲染器.setSeriesPaint(0,颜色.红色);
int seriescont=plot.getseriescont();
对于(int i=0;i对于(int i=0;ITRY <代码> FastScatterPlot < /代码>,讨论了,但也考虑了用户的体验。这绝对快了。但是我希望在放大时画出这行。你应该怎么做?更多的想法。