[JFreeChart] Mettre en forme l'axe des abcisses
Bonjour
je voudrai affiché un histogramme en utilisant jfreechart .mon problème c'est que je ne veut pas afficher toutes les valeurs de l'axe des X (de 0 a 255)
je veut afficher une valeur toute les 8 valeurs c a d 0 8 16 24 32 .... au lieu de 012345678910111213....255
le programme ne me permet pas d'exploiter la methode setDomainAxis() avec un NumberAxis comme paramètre .
et je change l'objet de type CategoryPlot en XYPlot le programme me donne l'erreur suivante :
Code:
1 2 3 4
|
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jfree.chart.plot.CategoryPlot cannot be cast to org.jfree.chart.plot.XYPlot
at org.jfree.chart.JFreeChart.getXYPlot(JFreeChart.java:853)
at ImgHst.createHstFrame(ImgHst.java:86) |
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 ChartFrame createHstFrame()
{
DefaultCategoryDataset ensHistg = new DefaultCategoryDataset();
for (int i=0; i < imgHistogram.getNumBins(bandesCouleurs);i++)
{
ensHistg.setValue(imgHistogram.getBinSize(bandesCouleurs,i), "Gray", ""+ i);
}
JFreeChart myChart = ChartFactory.createBarChart("Histograme", "TTTTT", "gggggg", ensHistg,PlotOrientation.VERTICAL ,false,true,true);
CategoryPlot P =myChart.getCategoryPlot();
NumberAxis valueScaleRange = new NumberAxis("Titre");
valueScaleRange.setRange(0.0, maxHistValeurs );
P.setRangeAxis(valueScaleRange);
NumberAxis valueScaleDomain = new NumberAxis("Titre");
P.setDomainAxis(valueScaleDomain); // erreur !!!!!
P.setRangeGridlinePaint(Color .black );
ChartFrame frame =new ChartFrame("Histogram", myChart);
frame.setVisible(true);
frame.setSize(450, 350);
return frame;
} |
merci