[JFreeChart] Comment sont ou doit-on organiser les données pour un histogramme ?
Bonjour,
Je réalise une application qui necessite la création d'un histogramme. La création d'un histogramme est fait de la maniere suivante :
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
private JFreeChart myChart;
private HistogramDataSet myHistogramDataSet;
//Création de l'histogramme
private JFreeChart getMyChart() {
if(this.myChart == null)
{
this.myChart = ChartFactory.createHistogram(
"",
"Couleurs",
"Fréquence",
this.getMyHistogramDataSet(),
PlotOrientation.VERTICAL,
true,
false,
false
);
this.myChart.setAntiAlias(false);
this.myChart.getXYPlot().setForegroundAlpha(0.75f);
}
return myChart;
}
/**
* Creation du HistogramDataSet
* @return the myHistogramDataSet
*/
private HistogramDataset getMyHistogramDataSet() {
this.myHistogramDataSet = new HistogramDataset();
this.myHistogramDataSet.setType(HistogramType.FREQUENCY);
this.myHistogramDataSet.addSeries("Image", this.myCalculManager.getSimpleHistogram(), 255);
return myHistogramDataSet;
}
/**
*Creation du tableau conteant les valeurs pour realiser l'histogramme
*/
public double[] getSimpleHistogram() {
int[] tmp = this.myDataManager.getDataArray();
this.myHistogramSingleImage = new double[128*128]; //FIXME A gerer
for (int i = 0; i < tmp.length; i++) {
this.myHistogramSingleImage[i] = (double)tmp[i];
}
return this.myHistogramSingleImage;
} |
La question que je me pose est la suivante :
Es ce au programmeur de créé un tableau contenant les valeurs de l'histogramme (ie les calculs sont realisés par le programmeur) ou es ce qu'il suffit de mettre les données brutes et JfreeChart s'occupe de faire le calcul de l'histogramme ?
Peut etre je n'ai pas compris la structure de donnée de HistogramDataSet, veuillez dans ce cas m'indiquer quel est cette structure, svp.
Merci pour vos reponses.
Note : Cet histogramme a pour fonction d'afficher la réparttion des couleurs en niveau de gris (8bit) soit 256 niveaux de gris. Si par hasard, une telle fonction existe deja, pourrer vous me le dire svp.
Merci
Langage : Java 1.5
API pour les histogrammes : JFreeChart 1.0.6