1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| protected ChartPanel createChart(Map<String, Map<Integer, Integer>> data) {
// création du graphique vide
JFreeChart chart = ChartFactory.createLineChart("Titre", "x", "y", null, PlotOrientation.VERTICAL, true, false, false);
// insertion des données
int index = 0; // identifie les différentes courbes
for (String curveTitle : data.keySet()) {
// on récupère les données d'une courbe
DefaultMultiValueCategoryDataset dataset = new DefaultMultiValueCategoryDataset();
Map<Integer, Integer> instanceData = data.get(curveTitle);
for (Map.Entry<Integer, Integer> entry : instanceData.entrySet()) {
// insertion du point, notez la nécessité de
// faire une liste, ce qui n'est pas naturel
int x = entry.getKey();
int y = entry.getValue();
dataset.add(Arrays.asList(y), curveTitle, x);
}
// on insère les données dans le graphique
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setDataset(index, dataset);
// création d'un renderer pour chaque courbe
// sinon seule la première est affichée
CategoryItemRenderer renderer = new DefaultCategoryItemRenderer();
plot.setRenderer(index, renderer);
index++;
}
return new ChartPanel(chart);
} |
Partager