graphique bar chart particulier avec jfreechart
bonjour,
j'ai besoin de creer un histogramme de type bar chart avec la particularité d'avoir plusieurs barres pour une meme serie et une meme categorie
les données :
http://data.imagup.com/12/1153813023.JPG
generateur du graphique :
Code:
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
|
public void BackingBean1() {
try {
final CategoryDataset dataset = createDataset1();
final JFreeChart jFreeChart = ChartFactory.createBarChart(
"",// chart title
"Testername", // domain axis label
"Overdrive (micro m)", // range axis label
dataset, // data
PlotOrientation.VERTICAL,
true, // include legend
true, // tooltips?
false // URL generator? Not required...
);
File chartFile = new File("dynamichart");
ChartUtilities.saveChartAsPNG(chartFile,jFreeChart,1200, 500);
chart1 = new DefaultStreamedContent(new FileInputStream(chartFile), "image/png");
} catch (Exception e) {
log.fatal(e);
}
}
} |
Ma data set :
Code:
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
| private CategoryDataset createDataset1() {
// row keys...
final String series1 = "serie1";
final String series2 = "serie2";
// column keys...
final String category1 = "Categorie 1";
final String category2 = "Categorie 2";
// create the dataset...
final DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(1.0, series1, category1);
dataset.addValue(2.0, series1, category1);
dataset.addValue(2.0, series2, category1);
dataset.addValue(2.0, series2, category1);
dataset.addValue(1.0, series1, category2);
dataset.addValue(1.0, series1, category2);
dataset.addValue(1.0, series2, category2);
dataset.addValue(2.0, series2, category2);
return dataset;
} |
et voici le résultat attendu
http://data.imagup.com/12/1153675119.jpg
voici le résultat que j'obtiens ( mauvais )
http://data.imagup.com/10/1153675609.jpg
en fait avec l'exemple que j'ai utilisé mon graphique affiche uniquement la dernière valeur pour une série et une catégorie .
ce qui est logique vu que dataset.addValue(valeur, seriekey, categorykey);
comment puis-je obtenir le résultat attendu ?