[Bar -> Java] courbe avec fichier excel [Résolu]

ammouraenig - 9 avril 2013 à 12:15 - Dernière réponse : yousra026 1 Messages postés vendredi 26 février 2016Date d'inscription 26 février 2016 Dernière intervention
- 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
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Utilisateur anonyme - 9 avril 2013 à 13:37
3
Merci
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)

Merci Utilisateur anonyme 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Utilisateur anonyme - 9 avril 2013 à 13:39
0
Merci
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)
Commenter la réponse de Utilisateur anonyme
yousra026 1 Messages postés vendredi 26 février 2016Date d'inscription 26 février 2016 Dernière intervention - 26 févr. 2016 à 17:24
0
Merci
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
Commenter la réponse de yousra026

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.