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] Plusieurs couleurs de fond


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut [JFreeChart] Plusieurs couleurs de fond
    bonjour à tous

    je suis en train de travailler sur un graph et j'aurais besoin de vous

    je voudrais pouvoir allouer plusieurs couleurs de fond mais je ne sais pas comment faire
    par exemple entre 10 et 20 en ordonnée je voudrais que ce soit vert et partout ailleurs que ça reste blanc

    vous pourriez m'aider ?

    merci

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    Hello je te donne juste une piste (perso j'ai jamais eu à faire ça avec JFreechart) : quand on regarde la démo de JFreechart qui est sur le site dans la partie Miscellaneaous ya des trucs qui ressemblent à ce que tu veux faire dans Annotations et Markers

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    merci
    j'ai l'impression que le système d'annotation est exactement ce dont j'ai besoin

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    en fait ce n'est pas si simple

    mon graph est à base de CategoryPlot et de LineAndShapeRenderer et donc ce n'est pas simple d'y coller des annotations sur une zone hors catégories...

    si quelqu'un pourrait me dire comment dessiner un rectangle sur mon graph ça m'arrangerait en fait

    y'a bien plot.drawBackground(Graphics2D g2,Rectangle2D area) mais je ne sais pas quoi mettre pour g2...

  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
    Tu peux t'inspirer du code de BarChart3DDemo4 qui utilise les classes ValueMarker et CategoryTextAnnotation :
    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
    package demo;
     
    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.text.NumberFormat;
     
    import javax.swing.JPanel;
     
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartPanel;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.annotations.CategoryTextAnnotation;
    import org.jfree.chart.axis.CategoryAnchor;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.labels.ItemLabelAnchor;
    import org.jfree.chart.labels.ItemLabelPosition;
    import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.plot.ValueMarker;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.ui.ApplicationFrame;
    import org.jfree.ui.Layer;
    import org.jfree.ui.RefineryUtilities;
    import org.jfree.ui.TextAnchor;
     
    public class BarChart3DDemo4 extends ApplicationFrame
    {
     
     public BarChart3DDemo4(String s)
     {
         super(s);
         CategoryDataset categorydataset = createDataset();
         JFreeChart jfreechart = createChart(categorydataset);
         ChartPanel chartpanel = new ChartPanel(jfreechart);
         chartpanel.setPreferredSize(new Dimension(500, 270));
         setContentPane(chartpanel);
     }
     
     private static CategoryDataset createDataset()
     {
         DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
         defaultcategorydataset.addValue(0.77000000000000002D, "Series 1", "Robert");
         defaultcategorydataset.addValue(0.93000000000000005D, "Series 1", "Mary");
         defaultcategorydataset.addValue(0.58999999999999997D, "Series 1", "John");
         defaultcategorydataset.addValue(0.75D, "Series 1", "Ellen");
         defaultcategorydataset.addValue(0.63D, "Series 1", "Jack");
         defaultcategorydataset.addValue(0.94999999999999996D, "Series 1", "David");
         defaultcategorydataset.addValue(0.70999999999999996D, "Series 1", "Mark");
         defaultcategorydataset.addValue(0.65000000000000002D, "Series 1", "Andy");
         return defaultcategorydataset;
     }
     
     private static JFreeChart createChart(CategoryDataset categorydataset)
     {
         JFreeChart jfreechart = ChartFactory.createBarChart3D("Student Grades", "Students", "Grade", categorydataset, PlotOrientation.VERTICAL, false, true, false);
         CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
         CustomBarRenderer3D custombarrenderer3d = new CustomBarRenderer3D();
         custombarrenderer3d.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
         custombarrenderer3d.setBaseItemLabelsVisible(true);
         custombarrenderer3d.setItemLabelAnchorOffset(10D);
         custombarrenderer3d.setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
         categoryplot.setRenderer(custombarrenderer3d);
         ValueMarker valuemarker = new ValueMarker(0.69999999999999996D, new Color(200, 200, 255), new BasicStroke(1.0F), new Color(200, 200, 255), new BasicStroke(1.0F), 1.0F);
         categoryplot.addRangeMarker(valuemarker, Layer.BACKGROUND);
         custombarrenderer3d.setItemLabelsVisible(true);
         custombarrenderer3d.setMaximumBarWidth(0.050000000000000003D);
         CategoryTextAnnotation categorytextannotation = new CategoryTextAnnotation("Minimum grade to pass", "Robert", 0.70999999999999996D);
         categorytextannotation.setCategoryAnchor(CategoryAnchor.START);
         categorytextannotation.setFont(new Font("SansSerif", 0, 12));
         categorytextannotation.setTextAnchor(TextAnchor.BOTTOM_LEFT);
         categoryplot.addAnnotation(categorytextannotation);
         NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
         numberaxis.setNumberFormatOverride(NumberFormat.getPercentInstance());
         numberaxis.setUpperMargin(0.10000000000000001D);
         return jfreechart;
     }
     
     public static JPanel createDemoPanel()
     {
         JFreeChart jfreechart = createChart(createDataset());
         return new ChartPanel(jfreechart);
     }
     
     public static void main(String args[])
     {
         BarChart3DDemo4 barchart3ddemo4 = new BarChart3DDemo4("3D Bar Chart Demo 4");
         barchart3ddemo4.pack();
         RefineryUtilities.centerFrameOnScreen(barchart3ddemo4);
         barchart3ddemo4.setVisible(true);
     }
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 25
    Par défaut
    merci beaucoup pour le coup de main

    j'ai résolu mon problème en utilisant la classe IntervalMarker et j'ai pu définir les bandes et les couleurs facilement

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

Discussions similaires

  1. Plusieurs couleurs de fond pour une même cellule d'un tableau
    Par poitierjohan dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 12/12/2011, 08h57
  2. TDBGRID - Couleur de fond d'une seule cellule
    Par cgo dans le forum Bases de données
    Réponses: 5
    Dernier message: 11/09/2009, 10h16
  3. [JFreeChart] Différentes couleurs de fond
    Par RamyBoulet dans le forum 2D
    Réponses: 10
    Dernier message: 06/08/2008, 11h04
  4. debutant : couleur de fond d'une application direct3D
    Par ptidrone dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2004, 17h08
  5. Changer la couleur de fond de l'écran
    Par tnk dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 19/01/2003, 01h37

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