[Jfreechart] dépassement de l'échelle
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:
http://img100.imageshack.us/img100/2838/graphkc1.png
Maintenant, voila le code complet de ma servlet:
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 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!