[Bar -> Java] courbe avec fichier excel

Résolu
ammouraenig - 9 avril 2013 à 12:15
yousra026 Messages postés 1 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 26 février 2016 - 26 févr. 2016 à 17:24
salut
j'ai créé une application java pour m'afficher les courbes avec JFreeChart à partir de fichier excel.
mais mon probleme que le courbe affiche seulement la dernière point de courbe.
est ce que quelqu'un peux m'aider svp??
merci d'avance :)


import java.awt.Dimension;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JPanel;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.*;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.*;
import org.jfree.chart.renderer.category.*;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Minute;
import org.jfree.data.time.TimeSeries;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

public class exemplecourbe extends ApplicationFrame
{

public exemplecourbe(String s) throws BiffException, IOException
{
super(s);
JPanel jpanel = createDemoPanel();
jpanel.setPreferredSize(new Dimension(500, 270));
setContentPane(jpanel);
}

public static JFreeChart createChart() throws BiffException, IOException
{
// SET UP THE BAR GRAPH
DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();


StandardCategoryItemLabelGenerator standardcategoryitemlabelgenerator = new StandardCategoryItemLabelGenerator();
BarRenderer barrenderer = new BarRenderer();
barrenderer.setItemLabelGenerator(standardcategoryitemlabelgenerator);
barrenderer.setItemLabelsVisible(true);



CategoryPlot categoryplot = new CategoryPlot();
categoryplot.setDataset(defaultcategorydataset);

categoryplot.setRenderer(barrenderer);


categoryplot.setDomainAxis(new CategoryAxis("Date"));
categoryplot.setRangeAxis(new NumberAxis("Value"));
categoryplot.setOrientation(PlotOrientation.VERTICAL);
categoryplot.setRangeGridlinesVisible(true);
categoryplot.setDomainGridlinesVisible(true);
Workbook workBook = null;
FileInputStream filein = null;
String nameFile = "d:\\bouzidedrivetest.xls";
//String nameFile = name;

filein = new FileInputStream(nameFile);
workBook = Workbook.getWorkbook(filein);
Sheet onglet1 = workBook.getSheet(0);
Cell cell23 = (Cell) onglet1.getCell(0, 1);

//for (int i = 1; i < onglet1.getRows(); i++)
int i=1;
while(i<(onglet1.getRows()))

{ Cell cell0 = (Cell) onglet1.getCell(0, i);
Cell cell1 = (Cell) onglet1.getCell(5, i);
String t1=cell0.getContents().toString();

Float f2= (Float.valueOf(cell1.getContents().replace(',', '.')));

Cell cell02 = (Cell) onglet1.getCell(0, 2);
Cell cell12 = (Cell) onglet1.getCell(5, 2);


DefaultCategoryDataset defaultcategorydataset1 = new DefaultCategoryDataset();
defaultcategorydataset1.addValue(f2, "RSCP", t1);

categoryplot.setDataset(1,defaultcategorydataset1);

i++;
System.out.println(i);


LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();



categoryplot.setRenderer(1, lineandshaperenderer);
NumberAxis numberaxis = new NumberAxis("Axis 2");
//categoryplot.setRangeAxis(1, numberaxis);
categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);



}
JFreeChart jfreechart = new JFreeChart(categoryplot);
jfreechart.setTitle("Evolution");


return jfreechart;

}
public static JPanel createDemoPanel() throws BiffException, IOException
{
JFreeChart jfreechart = createChart();
return new ChartPanel(jfreechart);
}

public static void main(String args[]) throws BiffException, IOException
{
exemplecourbe overlaidbarchartdemo1 = new exemplecourbe("evolution");
overlaidbarchartdemo1.pack();
RefineryUtilities.centerFrameOnScreen(overlaidbarchartdemo1);
overlaidbarchartdemo1.setVisible(true);
}
}




voici partie de fichier excel:

Time Latitude Longitude HSDPA Ec/N RSCP
9:33:16.745 35.032246 9.473390 1657600 -9.3000 -70.8000
9:33:17.745 35.032249 9.473387 1714280 -9.5760 -71.1043
9:33:18.745 35.032249 9.473385 2538920 -9.4206 -71.2775
9:33:19.745 35.032249 9.473382 2560080 -9.2893 -71.1749
9:33:20.745 35.032249 9.473378 1982800 -9.0904 -70.8738
9:33:21.745 35.032249 9.473376 2143760 -8.8338 -70.6246
9:33:22.745 35.032253 9.473372 3668560 -8.4662 -70.3713
9:33:23.745 35.032253 9.473371 3912760 -8.5939 -70.4547
9:33:24.745 35.032253 9.473368 3395640 -8.6730 -70.5758
9:33:25.745 35.032257 9.473366 2825560 -8.7641 -70.6818
9:33:26.745 35.032257 9.473364 3598400 -8.8538 -70.7911
9:33:27.745 35.032257 9.473361 3082600 -8.9229 -70.9008
9:33:28.745 35.032257 9.473359 3849760 -8.9926 -70.9921

3 réponses

Utilisateur anonyme
9 avril 2013 à 13:37
Bonjour

Vous ne devez pas recréer le DefaultCategoryDataset plusieurs fois. Créez-le une seule fois et appelez addValue() dessus. Vous voyez bien que vous faites un setDataset avec un DefaultCategoryDataset qui contient une seule valeur, le résultat n'est pas étonnant. Il faut bien faire la différence entre "set" et "add". Je vois que vous traitez des données de FDD cells, ça me parle... Bon courage.




















T.U.E.R (First Person Shooter créé par Julien Gouesse)
3
Utilisateur anonyme
9 avril 2013 à 13:39
et je vous recommande d'utiliser Apache POI, c'est la bibliothèque Java la mieux maintenue pour manipuler des fichiers au format Excel.




















T.U.E.R (First Person Shooter créé par Julien Gouesse)
0
yousra026 Messages postés 1 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 26 février 2016
26 févr. 2016 à 17:24
Bonjour,

J'ai le même problème si vous aurez une idée.
Comment puis-je afficher des graphes avec jfreeChart depuis un fichier Excel
0
Rejoignez-nous