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 :

Faire des graphes en java


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut Faire des graphes en java
    Bonjour,

    Je voudrais faire un programme Java qui trace des courbes sur un axe à 2 dimension X, Y.

    Comme ci-dessous :

    - Je trace donc du point P1 de coordonnees X1,Y1 vers le point P2 de coordonnées X2, Y2 etc.. jusqu'au point Px, de coordonnées Xx,Yx.
    - Je voudrais pouvoir à tout moment rentrer un nouveau point et continuer ma courbe.
    - je voudrais aussi que les coordonnees du point s'affiche lorsque la souris passe dessus.

    Je développe d'habitude en swing.
    Quelle serait svp, la meilleure approche pour mes graphes ? faire dans ma fenetre swing, un panel qui contiendrait in awt ???

    Merci de vos conseils.

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

  3. #3
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    Merci.
    j'ai effectivement trouvé une courbe qui correspondrait à ce que je recherche (XYSplineRenderer)
    Je ne vois pourtant qu'une seule échelle sur la gauche .
    Je dois tracer plusieurs courbes, mais l'echelle de gauche diffère pour chacune.
    Est-ce possible ??

    De plus je ne parviens pas à voir de source code à titre d'exemple sur ce site ?
    meme sur le programme JFreeChart ?

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    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 096
    Par défaut
    Avec jFreeChart tu px dessiner plusieurs séries avec diffèrent axes sans problèmes.

    Normal, je pense, qu'ils ne donnent pas les codes sources, "ils sont payants" (bien que trouvable sur le net ...).
    (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
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    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 096
    Par défaut
    Ceci devrait fortement faire ton bonheur, (meme s'il ne s'agit pas du meme rendus que tu voudrais, a toi d'adapter), mais ca genre plusieur axes...

    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    	ChartPanel getChart()
    	{
    		 // create the chart...
            JFreeChart chart = ChartFactory.createXYLineChart(
                "Dimensions",      // chart title
                "Virolles",             // x axis label
                "",                      // y axis label
                dataset_1,                  // data
                PlotOrientation.VERTICAL,
                true,                     // include legend
                true,                     // tooltips
                false                     // urls
            );
     
            // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
          //  chart.setBackgroundPaint(Color.orange);
     
            // get a reference to the plot for further customisation...
            XYPlot plot = chart.getXYPlot();
     
     
            //  AXIS 1
            NumberAxis axis1 = new NumberAxis("Weight");
            axis1.setFixedDimension(10.0);
            axis1.setAutoRangeIncludesZero(false);
            axis1.setLabelPaint(Color.green);
            axis1.setTickLabelPaint(Color.green);
            plot.setRangeAxis(0, axis1);
            plot.setRangeAxisLocation(0, AxisLocation.BOTTOM_OR_LEFT);
            plot.setDataset(0, dataset_1);
            plot.mapDatasetToRangeAxis(0, 0);
     
            //  AXIS 2
            NumberAxis axis2 = new NumberAxis("IVir");
            axis2.setFixedDimension(10.0);
            axis2.setAutoRangeIncludesZero(false);
            axis2.setLabelPaint(Color.blue);
            axis2.setTickLabelPaint(Color.blue);
            plot.setRangeAxis(1, axis2);
            plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_LEFT);
            plot.setDataset(1, dataset_2);
            plot.mapDatasetToRangeAxis(1, 1);
     
            //  AXIS 3
            NumberAxis axis3 = new NumberAxis("Raid");
            axis3.setFixedDimension(10.0);
            axis3.setAutoRangeIncludesZero(false);
            axis3.setLabelPaint(Color.red);
            axis3.setTickLabelPaint(Color.red);
            plot.setRangeAxis(2, axis3);
            plot.setRangeAxisLocation(2, AxisLocation.BOTTOM_OR_LEFT);
            plot.setDataset(2, dataset_3);
            plot.mapDatasetToRangeAxis(2, 2);
     
            //  AXIS 4
            NumberAxis axis4 = new NumberAxis("Thick");
            axis4.setFixedDimension(10.0);
            axis4.setAutoRangeIncludesZero(false);
            axis4.setLabelPaint(Color.cyan);
            axis4.setTickLabelPaint(Color.cyan);
            plot.setRangeAxis(3, axis4);
            plot.setRangeAxisLocation(3, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setDataset(3, dataset_4);
            plot.mapDatasetToRangeAxis(3, 3);
     
            //  AXIS 5
            NumberAxis axis5 = new NumberAxis("Diameter");
            axis5.setFixedDimension(10.0);
            axis5.setAutoRangeIncludesZero(false);
            axis5.setLabelPaint(Color.magenta);
            axis5.setTickLabelPaint(Color.magenta);
            plot.setRangeAxis(4, axis5);
            plot.setRangeAxisLocation(4, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setDataset(4, dataset_5);
            plot.mapDatasetToRangeAxis(4, 4);
     
            //  AXIS 4
            NumberAxis axis6 = new NumberAxis("DiamSup");
            axis6.setFixedDimension(10.0);
            axis6.setAutoRangeIncludesZero(false);
            axis6.setLabelPaint(Color.orange);
            axis6.setTickLabelPaint(Color.orange);
            plot.setRangeAxis(5, axis6);
            plot.setRangeAxisLocation(5, AxisLocation.BOTTOM_OR_RIGHT);
            plot.setDataset(5, dataset_6);
            plot.mapDatasetToRangeAxis(5, 5);
     
     
            XYItemRenderer renderer1 = new StandardXYItemRenderer();
            XYItemRenderer renderer2 = new StandardXYItemRenderer();
            XYItemRenderer renderer3 = new StandardXYItemRenderer();
            XYItemRenderer renderer4 = new StandardXYItemRenderer();
            XYItemRenderer renderer5 = new StandardXYItemRenderer();
            XYItemRenderer renderer6 = new StandardXYItemRenderer();
            renderer1.setSeriesPaint(0, Color.green);
            renderer2.setSeriesPaint(0, Color.blue);
            renderer3.setSeriesPaint(0, Color.red);
            renderer4.setSeriesPaint(0, Color.cyan);
            renderer5.setSeriesPaint(0, Color.magenta);
            renderer6.setSeriesPaint(0, Color.orange);
            plot.setRenderer(0, renderer1);
            plot.setRenderer(1, renderer2);
            plot.setRenderer(2, renderer3);
            plot.setRenderer(3, renderer4);
            plot.setRenderer(4, renderer5);
            plot.setRenderer(5, renderer6);
     
     
            // Marqueur 1
            valuemarker1 = new ValueMarker(0);
            valuemarker1.setLabelOffsetType(LengthAdjustmentType.EXPAND);
            valuemarker1.setPaint(Color.red);
            valuemarker1.setStroke(new BasicStroke(2.0F));
            valuemarker1.setLabel("Fitness");
            valuemarker1.setLabelFont(new Font("SansSerif", 0, 11));
            valuemarker1.setLabelPaint(Color.red);
            valuemarker1.setLabelAnchor(RectangleAnchor.TOP_LEFT);
            valuemarker1.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
            plot.addRangeMarker(valuemarker1);
     
     
            // add the chart to a panel...
            ChartPanel chartPanel = new ChartPanel(chart);
            chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
            //setContentPane(chartPanel);
     
            return chartPanel;
    	}
    (j'ai passé des heures a chippoter pour qu'enfin ca fonctionne ^^)
    (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

  6. #6
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    Merci de votre aide .

    Oui effectivement en tapant le Nom du graphe de JFreeChart, j'ai fini par trouver des exemples sur google.
    Mais votre code m'aidera aussi, car il reste des fonctions que j'ai du mal à comprendre.
    Par exemple dire que l'echelle d'un graphe doit etre de 4 à 14 et l'autre de 0 à 100000.

    Aussi, est-il possible "personnaliser ces graphes" ?

    Par exemple, je voudrais établir pour chaque courbe un "seuil critique"
    (cad une ligne horizontale) ?

    De même, ayant en abscisse les jours, je voudrais aussi marquer des "jours spéciaux" (cad tracer une ligne verticale).

    Est-ce possible ?

    merci d'avance

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

Discussions similaires

  1. librairie pour faire des graphes
    Par elekis dans le forum 2D
    Réponses: 6
    Dernier message: 26/11/2007, 18h51
  2. Réponses: 2
    Dernier message: 13/09/2007, 14h12
  3. faire des interfaces en Java
    Par 18Marie dans le forum Langage
    Réponses: 1
    Dernier message: 08/09/2006, 20h39
  4. Composant permettant de faire des graphes sous Excel
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 25/10/2005, 22h13
  5. [SWT] Api pour faire des graph ?
    Par bawan dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 05/09/2005, 13h13

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