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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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