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

2D Java Discussion :

[JFreeChart] droite de regression?


Sujet :

2D Java

  1. #1
    Membre très actif
    Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut [JFreeChart] droite de regression?
    Bonjour,

    Je viens de passer sur le forum 2D pour voir ce que vous proposiez pour faire des charts et j'ai aperçu JFreeChart qui m'a l'air bien et surtout gratuit (à part la doc apparament).
    Je voudrais tracer une droite de régression linéaire (avec des points ). Pensez-vous que c'est faisable? en fait peut-on donner des points et appeler une méthode qui trace la courbe de régression (méthode des moindres au carré).
    merci

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Voici un code exemple :
    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
    import java.awt.Color;
    import java.awt.Container;
    import javax.swing.JTabbedPane;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.XYPlot;
    import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
    import org.jfree.data.function.LineFunction2D;
    import org.jfree.data.function.PowerFunction2D;
    import org.jfree.data.general.DatasetUtilities;
    import org.jfree.data.statistics.Regression;
    import org.jfree.data.xy.*;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.RefineryUtilities;
     
    public class RegressionDemo1 extends ApplicationFrame
    {
     
        public RegressionDemo1(String s)
        {
            super(s);
            data1 = createSampleData1();
            getContentPane().add(createContent());
        }
     
        private JTabbedPane createContent()
        {
            JTabbedPane jtabbedpane = new JTabbedPane();
            jtabbedpane.add("Linear", createChartPanel1());
            jtabbedpane.add("Power", createChartPanel2());
            return jtabbedpane;
        }
     
        private ChartPanel createChartPanel1()
        {
            NumberAxis numberaxis = new NumberAxis("X");
            numberaxis.setAutoRangeIncludesZero(false);
            NumberAxis numberaxis1 = new NumberAxis("Y");
            numberaxis1.setAutoRangeIncludesZero(false);
            XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(false, true);
            XYPlot xyplot = new XYPlot(data1, numberaxis, numberaxis1, xylineandshaperenderer);
            double ad[] = Regression.getOLSRegression(data1, 0);
            LineFunction2D linefunction2d = new LineFunction2D(ad[0], ad[1]);
            XYDataset xydataset = DatasetUtilities.sampleFunction2D(linefunction2d, 2D, 11D, 100, "Fitted Regression Line");
            xyplot.setDataset(1, xydataset);
            XYLineAndShapeRenderer xylineandshaperenderer1 = new XYLineAndShapeRenderer(true, false);
            xylineandshaperenderer1.setSeriesPaint(0, Color.blue);
            xyplot.setRenderer(1, xylineandshaperenderer1);
            JFreeChart jfreechart = new JFreeChart("Linear Regression", JFreeChart.DEFAULT_TITLE_FONT, xyplot, true);
            ChartPanel chartpanel = new ChartPanel(jfreechart, false);
            return chartpanel;
        }
     
        private ChartPanel createChartPanel2()
        {
            NumberAxis numberaxis = new NumberAxis("X");
            numberaxis.setAutoRangeIncludesZero(false);
            NumberAxis numberaxis1 = new NumberAxis("Y");
            numberaxis1.setAutoRangeIncludesZero(false);
            XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(false, true);
            XYPlot xyplot = new XYPlot(data1, numberaxis, numberaxis1, xylineandshaperenderer);
            double ad[] = Regression.getPowerRegression(data1, 0);
            PowerFunction2D powerfunction2d = new PowerFunction2D(ad[0], ad[1]);
            XYDataset xydataset = DatasetUtilities.sampleFunction2D(powerfunction2d, 2D, 11D, 100, "Fitted Regression Line");
            XYLineAndShapeRenderer xylineandshaperenderer1 = new XYLineAndShapeRenderer(true, false);
            xylineandshaperenderer1.setSeriesPaint(0, Color.blue);
            xyplot.setDataset(1, xydataset);
            xyplot.setRenderer(1, xylineandshaperenderer1);
            JFreeChart jfreechart = new JFreeChart("Power Regression", JFreeChart.DEFAULT_TITLE_FONT, xyplot, true);
            ChartPanel chartpanel = new ChartPanel(jfreechart, false);
            return chartpanel;
        }
     
        private XYDataset createSampleData1()
        {
            XYSeries xyseries = new XYSeries("Series 1");
            xyseries.add(2D, 56.270000000000003D);
            xyseries.add(3D, 41.32D);
            xyseries.add(4D, 31.449999999999999D);
            xyseries.add(5D, 30.050000000000001D);
            xyseries.add(6D, 24.690000000000001D);
            xyseries.add(7D, 19.780000000000001D);
            xyseries.add(8D, 20.940000000000001D);
            xyseries.add(9D, 16.73D);
            xyseries.add(10D, 14.210000000000001D);
            xyseries.add(11D, 12.44D);
            XYSeriesCollection xyseriescollection = new XYSeriesCollection(xyseries);
            return xyseriescollection;
        }
     
        public static void main(String args[])
        {
            RegressionDemo1 regressiondemo1 = new RegressionDemo1("Regression Demo 1");
            regressiondemo1.pack();
            RefineryUtilities.centerFrameOnScreen(regressiondemo1);
            regressiondemo1.setVisible(true);
        }
     
        private XYDataset data1;
    }

  3. #3
    Membre très actif
    Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Salut !
    merci beaucoup pour ta source, ça m'aide vraiment. Désolé d'avoir mis autant de temps à répondre. C'est impeccable

  4. #4
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    C'est ou qu l'on peut trouver ces codes exemples?
    Merci ^^

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Lorsque tu télécharges JFreeChart, il y a un jar de demo.
    Il suffit donc de télécharger un décompilateur Java, comme par exemple DJ Java Decompiler, ouvrir le jar de demo avec un archiver et ensuite, ouvrir la classe qui t'intéresse avec DJ et ainsi, tu pourras voir le code source.

  6. #6
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    Ah oui pas con ^^
    Mais je pensais que les sources pouvaient p-e etre dans un dossier qqe part dans le dossier qu'on telecharge

    MErci

  7. #7
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    D'après ce qu'il est écrit sur le site de JFreeChart, le code source est donné si on achète le guide de développement.

  8. #8
    Membre confirmé Avatar de L8O8L
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 148
    Par défaut
    Ahah!!
    ALors c'est interdit de recuperer le code avec le decompileur aussi s'il faut acheter qqch pour avoir les codes??!!

    Je ne marche point dans cette combine si c'est le cas

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 360
    Par défaut Cas de 3 graphe sur le meme oBjet JFreechart
    Bon Merci pour les informations et le code fourni, juste une petit question a vous posé c'est que mon objectif est de tracer 3graphe avec des dataset differentes sur le meme objet JFreeChart? y a t il une methode pour que je lui donne une liste des datasets et sachant que le premier graphe sera sous la forme de droite et le deuxieme sous forme de courbe et le troisieme sous forme des points de coordonnées X,Y
    merci pour votre aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2017, 09h16
  2. Equation droite de regression
    Par ZazOufUmI dans le forum MATLAB
    Réponses: 7
    Dernier message: 20/04/2012, 22h45
  3. Superposer une droite de regression sur un gchart
    Par elfidream dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 20/06/2009, 20h54
  4. Affichage des droites de regression
    Par niepoc dans le forum MATLAB
    Réponses: 3
    Dernier message: 09/06/2008, 16h30
  5. Réponses: 0
    Dernier message: 21/03/2008, 13h51

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