Bonjour!


je me retrouve confronté à un problème assez étrange avec un de mes graphiques.

En effet, après lui avoir spécifié que je voulais une ordonnée entière, la valeur maximale est dépassée par le trait d'ordonnée.

Pour mieux comprendre, voici la capture d'écran:




Maintenant, voila le code complet de ma servlet:



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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package com.fortuneo.jfortuneochart.graph;
 
import java.awt.Color;
import java.io.IOException;
import java.io.OutputStream;
import java.text.NumberFormat;
import java.util.StringTokenizer;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
 
//import com.broadvision.util.BVLog;
 
public class historiqueConsensus2 extends HttpServlet { 
 
  /**
	 * 
	 */
	private static final long serialVersionUID = -1316168591864396873L;
 
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
		HttpSession session = request.getSession(true);
		String notes = (String) session.getAttribute("tabNotes");
 
		String[][] tab;
		int i = 0 ;
		StringTokenizer st = new StringTokenizer(notes, ";");
		tab = new String[st.countTokens()][] ;
 
		while (st.hasMoreTokens()) {
		        int j = 0 ;
			StringTokenizer st2 = new StringTokenizer(st.nextToken(), "/");
		        String[] tab2 = new String[ st2.countTokens()] ;
			while (st2.hasMoreTokens()) {
		                tab2[j] = st2.nextToken() ;
		                j++ ;
			}
		        tab[i] = tab2 ;
		        i++ ;
		}
 
	/*
		for(int k = 0; k< tab.length; k++){
			for(int l = 0; l < tab[k].length; l++){
			BVLog.bvlog(1,1, tab[k][l]);
			}
		}
		*/
	    JFreeChart barChart = ChartFactory.createStackedBarChart("Nombre d'analystes", "Mois", 
	      "Nombre", createDataset(tab), PlotOrientation.VERTICAL, false, true, false);
	    CategoryPlot plot = barChart.getCategoryPlot();
	    CategoryAxis domainAxis1 = plot.getDomainAxis();
		domainAxis1.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
		NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
		rangeAxis.setNumberFormatOverride(NumberFormat.getIntegerInstance());
	    BarRenderer renderer = (BarRenderer) plot.getRenderer();
 
	    renderer.setSeriesPaint(0, Color.gray);
	    // couleur du contour du graphe
	    plot.setOutlinePaint(Color.black);
	    // couleur du fond du graphe  
	    plot.setBackgroundPaint(new Color(255, 255, 255));
	    //couleur du fond du dessin 
	    barChart.setBackgroundPaint(Color.white);
 
	    response.setContentType("image/png");
	    OutputStream out = response.getOutputStream(); 
 
	    ChartUtilities.writeChartAsPNG(out, barChart, 305, 230); 
	}
 
	private static DefaultCategoryDataset createDataset(String tab[][]) {
 
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
	    for(int i=0 ; i<tab.length; i++){
			int nb = Integer.parseInt(tab[i][2]);
		    dataset.addValue(nb, "Nombre", tab[i][0]);
		}
	    return  dataset;
	}
}

Le plus étonnant, c'est que pour les autres valeurs cela ne dépasse pas lorsque cela correspond à une valeur présente en ordonnée (ici 5)

Par contre, mon 8 dépasse la barre des 8...


Merci pour votre aide, et bonne année 2007 à tous!