Bonjour,
J'ai un tableau que j'ai extrait d'une base de données dont voici les valeurs :J'ai créé une classe Java qui permet d'afficher la courbe de variation valeur en fontion du temps.+------------+----------+---------+
| date | heure | valeur |
+------------+----------+---------+
| 2012-04-16 | 16:09:50 | 4619.46 |
| 2012-04-16 | 17:10:05 | 3497.93 |
| 2012-04-16 | 18:09:13 | 5862.1 |
| 2012-04-16 | 19:09:21 | 6006.03 |
| 2012-04-16 | 20:09:34 | 5716.41 |
| 2012-04-16 | 21:09:21 | 5537.5 |
| 2012-04-16 | 22:09:53 | 4083.13 |
| 2012-04-16 | 23:09:49 | 4212.54 |
| 2012-04-17 | 00:09:40 | 4387.92 |
| 2012-04-17 | 01:09:54 | 3678.67 |
| 2012-04-17 | 02:09:17 | 5696.32 |
| 2012-04-17 | 03:09:52 | 4484.08 |
| 2012-04-17 | 04:09:37 | 4486.34 |
| 2012-04-17 | 05:10:31 | 4373.79 |
| 2012-04-17 | 06:09:49 | 4461.08 |
| 2012-04-17 | 07:09:08 | 5881.93 |
| 2012-04-17 | 08:08:57 | 5532.78 |
| 2012-04-17 | 09:09:47 | 4213.67 |
| 2012-04-17 | 10:09:14 | 5644.68 |
| 2012-04-17 | 11:09:15 | 5217.59 |
| 2012-04-17 | 12:10:04 | 3678 |
| 2012-04-17 | 13:10:22 | 4086.52 |
| 2012-04-17 | 16:01:29 | 940.421 |
Le but est d'afficher la variation entre le 2012-04-16 à 16h et le 212-04-17 à 17h.
voici mon codeSauf que là, ma classe au lieu de tracer la variation entre les deux instants souhatés, elle trace une variation entre minuit et minuit de la journée 2012-04-16.
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 package metier; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Enumeration; import javax.imageio.ImageIO; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.DateAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.XYItemRenderer; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.time.Hour; import org.jfree.data.time.Minute; import org.jfree.data.time.Second; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.ui.RectangleInsets; import com.sun.corba.se.impl.orbutil.graph.Graph; import marouene.TimeSeriesDemoTest; import marouene.compare; public class httpcompare extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException { connexionBD con = new connexionBD(); response.setContentType("image/png"); ResultSet rs1 = con.execute("select heure,valeur from table1 WHERE STR_TO_DATE(CONCAT(`date`, ' ', heure), '%Y-%m-%d %H:%i:%s') BETWEEN DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 24 HOUR) AND CURRENT_TIMESTAMP;"); final TimeSeries series1 = new TimeSeries("valeur", Hour.class); while(rs1.next()){ java.sql.Time v1; v1 = rs1.getTime("heure"); double v2=rs1.getFloat("valeur"); series1.addOrUpdate( new Minute(v1), v2); } DateAxis domain = new DateAxis("Time"); NumberAxis range = new NumberAxis("Débit en Kb/s"); final TimeSeriesCollection dataset = new TimeSeriesCollection(series1); dataset.setDomainIsPointsInTime(true); XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false); XYPlot plot = new XYPlot(dataset, domain, range, renderer); plot.setBackgroundPaint(Color.lightGray); plot.setDomainGridlinePaint(Color.white); plot.setRangeGridlinePaint(Color.white); plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0)); range.setAutoRange(true); range.setLowerMargin(0.0); range.setUpperMargin(0.0); range.setTickLabelsVisible(true); range.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); JFreeChart chart = new JFreeChart(plot); XYItemRenderer r = plot.getRenderer(); if (r instanceof XYLineAndShapeRenderer) { XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) r; renderer1.setBaseShapesVisible(true); renderer1.setBaseShapesFilled(true); } chart.setTitle(new TextTitle("Comparaison du débit Http")); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(600, 300)); chartPanel.setMouseZoomable(true, false); OutputStream out = response.getOutputStream(); ChartUtilities.writeChartAsPNG(out, chart, 700, 500); request.setAttribute("image",out); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { processRequest(request, response); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Quelqu'un saurait-il m'explique ce qui ne va pas ?
Merci d'avance pour votre aide.
Partager