Bonjour.

Je débute avec jfreechart et je suis déjà confronté à un problème.

Mon but est de dessiner un graphique histogramme. Ma fonction prends en paramètre un tableau qui contient un mois, un intitulé, et un nombre.


Je veux que selon la note, la couleur soit celle que je désire, mais je n'arrive pas à le faire.

J'ai en effet mon code qui ressemble pour le moment à ca (je passe les valeurs en dur...)

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
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
 
    DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
    dataset.addValue(1, "Tomate", "Janvier"); 
    dataset.addValue(3, "Chou", "Février"); 
    dataset.addValue(1, "Tomate", "Mars"); 
    dataset.addValue(2, "Carotte", "Avril"); 
    dataset.addValue(0, "Patate", "Mai"); 
    dataset.addValue(4, "Poireau", "Juin"); 
    dataset.addValue(0, "Patate", "Juillet"); 
    dataset.addValue(1, "Tomate", "Août"); 
    dataset.addValue(2, "Carotte", "Septembre");
    dataset.addValue(3, "Chou", "Octobre"); 
    dataset.addValue(2, "Carotte", "Novembre"); 
    dataset.addValue(4, "Poireau", "Décembre"); 
 
    JFreeChart barChart = ChartFactory.createBarChart("Choix du légume", "", 
      "Num legume", dataset, PlotOrientation.VERTICAL, false, false, false);
    CategoryPlot plot = barChart.getCategoryPlot();
    OutputStream out = response.getOutputStream(); 
    response.setContentType("image/png"); 
    ChartUtilities.writeChartAsPNG(out, barChart, 305, 230); 
  } 
}

J'ai essayé de changer la couleur, mais je ne sais pas comment dire que pour chou je veux du jaune, pour Patate du marron...

J'ai essayé des commandes du style:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    renderer.setSeriesPaint(0, Color.red);
    renderer.setSeriesPaint(1, Color.green);
    renderer.setSeriesPaint(2, Color.blue);
Mais c'est un numéro en paramètre, donc ce n'est pas ce que je recherche



Si quelqu'un s'y connait en jfreechart, je serais heureux qu'il me fasse part de son expérience.

Merci