2015-03-27 3 views
2

Я работаю с java, я хочу нарисовать линейную диаграмму, которая включает в себя как минимум две строки одновременно. Я могу передавать только один DefaultCategoryDataset каждый раз в качестве параметра, и этот DefaultCategoryDataset представляет одну строку. так как я могу это сделать?Как рисовать несколько строк в линейной диаграмме с помощью JFreeChart?

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

ответ

1

Вы должны «кормить» данные более чем одной серией.

Вот это, как я справиться с этим с 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 
    ); 
Смежные вопросы