Вы должны «кормить» данные более чем одной серией.
Вот это, как я справиться с этим с 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
);