bonsoir
je suis entrain d'utiliser l API JFreeChar pour faire des histogrammes
j'ai trois catégorie de résultat chaque catégorie est représenté par 3 barres
le premier doit etre rouge le deuxième bleu et le troisième vert
pour cela j'ai fait le code suivant
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
 public BarChar(double data[][],int num_node) {
 
    	this.data=data;
    	this.num_node=num_node;
 
    	this.dataset=DatasetUtilities.createCategoryDataset(Series ,Factor, this.data);
 
 
 
    }
 
    public ChartPanel createChartpanel() {
 
      this.chart = ChartFactory.createBarChart(
            "",         // chart title
            "",                 // domain axis label
            "",                // range axis label
            this.dataset,                    // data
            PlotOrientation.VERTICAL, // orientation
            false,                       // include legend
            true,
            false
        );
 
 
 
 
 
          CategoryPlot plot = chart.getCategoryPlot();
        plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
 
 
         NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setRange(0.0, 100.0);
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
     CategoryItemRenderer renderer = new myrender(
            new Paint[] {Color.red, Color.blue, Color.green,
                Color.red, Color.blue, Color.green,
                Color.red, Color.blue, Color.green,}
        );
 
         plot.setRenderer(renderer);
                chartPanel = new ChartPanel(this.chart);
                  chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
                return chartPanel ;
 
    }
pour le rendrer
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
 
 class Myrender extends BarRenderer {
 
 
        private Paint[] colors;
 
 
        public Myrender(final Paint[] colors) {
            this.colors = colors;
        }
 
 
        public Paint getItemPaint(final int row, final int column) {
            return this.colors[column % this.colors.length];
        }
    }
mais a la fin le résultat est les premier trois bar sont rouge les deuxième sont bleu et les troisième sont vert