IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Graphisme Java Discussion :

Tracer trois courbes en Jfreechart


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut Tracer trois courbes en Jfreechart
    Bonjour,
    j'ai tenté de tracer trois courbes dont les valeurs sont prises d'une base de données dans un meme graphe Time series de Jfreechart, voici mon code :

    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
     ResultSet rs = con.execute("select heure,ftp from ftptable where (date=left(now(),10)) order by heure;");   
                ResultSet rs1 = con.execute("select heure,ftp from ftptable2 where (date=left(now(),10)) order by heure;");   
                ResultSet rs2 = con.execute("select heure,ftp from ftptable3 where (date=left(now(),10)) order by heure;");   
                final TimeSeries series = new TimeSeries("Débit  1", Minute.class);
            	final TimeSeries series1 = new TimeSeries("Débit  2", Minute.class);
            	final TimeSeries series2 = new TimeSeries("Débit  2", Minute.class);
                while(rs.next()){
     
                	Timestamp v1;
     
        			v1 = rs.getTimestamp("heure");
     
                     double v2=rs.getDouble("ftp");
     
              		series.addOrUpdate( new Minute(v1), v2);
     
     
                 }
                rs.close();
                while(rs1.next()){
     
                	Timestamp v1;
     
        			v1 = rs1.getTimestamp("heure");
     
                      rs1.getDouble("ftp");
              		double v3=rs.getDouble("ftp");
     
     
            		series1.addOrUpdate( new Minute(v1), v3);
     
     
                 }
                rs1.close();
                while(rs2.next()){
     
                	Timestamp v1;
     
        			v1 = rs2.getTimestamp("heure");
     
     
              		double v4=rs2.getDouble("ftp");
     
            		series2.addOrUpdate( new Minute(v1), v4);
     
                 }
                 rs2.close();
                 DateAxis domain = new DateAxis("Time");
            	 NumberAxis range = new NumberAxis("Débit en Ko/s");
     
                final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
                dataset.addSeries(series1);
                dataset.addSeries(series2);
                XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false);
                renderer.setSeriesPaint(0, Color.green);
     
                renderer.setSeriesPaint(2, Color.red);
     
                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);
                chart.setTitle(new TextTitle("Comparaison du débit ftp"));
                XYItemRenderer r = plot.getRenderer();
                if (r instanceof XYLineAndShapeRenderer) {
                    XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) r;
                    renderer1.setBaseShapesVisible(true);
                    renderer1.setBaseShapesFilled(true);
                }
     
     
     
     
     
                     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);
    sauf que ca n'a pas marché ... sachant que si je fait une seule requete pour afficher une seule courbe mon code marche à merveille...
    Merci

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    sauf que ca n'a pas marché
    Oui mais encore ? Qu'est-ce qui n'a pas marché ?

    si je lance ce code si (sans tes requetes) ca fonctionne :

    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
    	final TimeSeries series = new TimeSeries("Débit  1", Minute.class);
    		final TimeSeries series1 = new TimeSeries("Débit  2", Minute.class);
    		final TimeSeries series2 = new TimeSeries("Débit  2", Minute.class);
             for(int i = 0; i < 50;i+=1)	
             {
             series.addOrUpdate( new Millisecond(),(int)(Math.random()*60));
             series1.addOrUpdate( new Millisecond(),(int)(Math.random()*60));
             series2.addOrUpdate( new Millisecond(),(int)(Math.random()*60));
             Thread.sleep((long) (Math.random()*10f));
     
              }
     
              DateAxis domain = new DateAxis("Time");
         	 NumberAxis range = new NumberAxis("Débit en Ko/s");
     
             final TimeSeriesCollection dataset = new TimeSeriesCollection();
             dataset.addSeries(series);
             dataset.addSeries(series1);
             dataset.addSeries(series2);
             XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false);
             renderer.setSeriesPaint(0, Color.green);
     
             renderer.setSeriesPaint(2, Color.red);
     
             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);
             chart.setTitle(new TextTitle("Comparaison du débit ftp"));
             XYItemRenderer r = plot.getRenderer();
             if (r instanceof XYLineAndShapeRenderer) {
                 XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) r;
                 renderer1.setBaseShapesVisible(true);
                 renderer1.setBaseShapesFilled(true);
             }
     
     
     
     
     
                  final ChartPanel chartPanel = new ChartPanel(chart);
                  chartPanel.setPreferredSize(new java.awt.Dimension(600, 300));
                  chartPanel.setMouseZoomable(true, false);
     
                  JFrame frame = new JFrame();
                  frame.add(chartPanel);
                  frame.setVisible(true);
    Donc je presume que c'est tes requetes qui ne vont pas ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut
    Je n'ai pas un affichage ..
    Mes requetes sont bonne, en les testant sur le CLI Sql, ils marchent nickel, chaque requete prend des valeurs de la table

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStream out = response.getOutputStream()
    En tout cas ton image semble aller la dedans ...
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre chevronné
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Par défaut
    Ca je l'utilise car je travaille avec des servlet c'est pour ca

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 097
    Par défaut
    Ha voila qui explique cela. Je vais avoir du mal a aider dans ce cas désolé.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/09/2014, 23h08
  2. tracer des courbes en opengl???
    Par jollo dans le forum OpenGL
    Réponses: 10
    Dernier message: 28/02/2013, 09h28
  3. Tracer une courbe avec 2 tableau de points
    Par babarpapa dans le forum 2D
    Réponses: 3
    Dernier message: 19/04/2006, 15h24
  4. [Images] [Librairie] Tracer une courbe ???
    Par cedre22 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 20/02/2006, 14h53
  5. Tracer une courbe théorique sur un TChart
    Par marsupilami34 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/09/2005, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo