如何使用JFreeChart在折线图中绘制多条线



我正在使用java,我想绘制一个同时包含至少两行的折线图。我每次只能传递一个DefaultCategoryDataset作为参数,而这个DefaultCategoryData集代表一行。那么我该怎么做呢?

ChartFactory.createLineChart("String", "String", "String", "DefaultCategoryDataset", "PlotOrientation.HORIZONTAL", "boolean", "boolean", "boolean");

您必须用多个系列"馈送"数据。

以下是我如何使用XYLineChart:处理此问题

1) 我有一个私人对象

    private XYSeriesCollection data =null;

2) 它被初始化为一个方法,然后调用另一个"馈送"数据的方法。

    data = new XYSeriesCollection();
    fillXYSeries();

3) 这是一种方法:

private void fillXYSeries(){
    data.removeAllSeries();
    for(int i=0;i<tables.size();i++){
        final XYSeries series = new XYSeries(tables.get(i).getName());
        for(int j=0;j<mostIntensiveTables.get(i).getChangesForChart().size();j++){
            series.add(j,mostIntensiveTables.get(i).getChangesForChart().get(j));
        }
        int found=0;
        for(int k=0;k<data.getSeriesCount();k++){
            if(data.getSeries(k)==series){
                found=1;
                break;
            }
        }
        if(found==0){
            data.addSeries(series);
        }
    }
}

最后,我用数据对象作为参数构建了我的图表:

final JFreeChart chart = ChartFactory.createXYLineChart(
            "Most Updated Tables",
            "Version ID", 
            "Number of Changes", 
            data,
            PlotOrientation.VERTICAL,
            true,
            true,
            false
    );

相关内容

  • 没有找到相关文章

最新更新