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 : Sélectionner tout - Visualiser dans une fenêtre à part
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)
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
Partager