Bonjour a tous,
Voila j'ai un petit probleme avec l'utilisation de JFreeChart... Je voudrais utiliser un TimeSeriesChart pour afficher une consommation.
Sur l axe des ordonnées j ai une valeur réelle.
Sur l axe des abscisses j'ai une date.
J ai besoin d'une precision au jour donc j'ai créé mes timeSeries de la sorte :
Ensuite j ai ajoute mes series pour le graph comme ceci:
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 public TimeSeries CreerTimeSeries() { TimeSeries serie = new TimeSeries(nom); for(int i = 1; i < mesRavitaillements.size();i++) { double lAu100 = (mesRavitaillements.get(i-1).getLitres() / (mesRavitaillements.get(i).getKm() - mesRavitaillements.get(i-1).getKm() ) ) * 100; Calendar date = Calendar.getInstance(); date.setTime(mesRavitaillements.get(i).getDate()); serie.add(new Day(date.get(Calendar.DAY_OF_MONTH), date.get(Calendar.MONTH), date.get(Calendar.YEAR)), lAu100); } if(serie.getItemCount() > 0) { return serie; } else { return null; } }
Et finalement j ai créé le graphique ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public void AjouterTimeSeries(TimeSeries pSerie, Color pCouleur) { if(pSerie != null) { coll.addSeries(pSerie); rendu.setSeriesPaint(coll.getSeriesCount()-1, pCouleur); } }
Le problème est que les dates affichées sur le graphique sont : 21-juin-2009, 28-juin-2009, 5-juil-2009, 12-juil-2009 au lieu de : 20-juil-2009, 25-juil-2009, 30-juil-2009, 15-aout-2009
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 public void CreerGraphique() { TimeSeriesCollection dataset = coll; JFreeChart graph = ChartFactory.createTimeSeriesChart("Consommation Essence", "date", "l/100km", dataset, true, true, false); XYPlot plot = graph.getXYPlot(); plot.setRenderer(rendu); DateAxis axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(new SimpleDateFormat("dd-MMM-yyyy")); if(pan != null) { remove(pan); } pan = new ChartPanel(graph); add(pan); revalidate(); }
Quelqu'un saurait il pourquoi ?
Merci d'avance a tout le monde
Partager