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] espacement histogramme 2D


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut [JFreeChart] espacement histogramme 2D
    bonjour,

    voilà encore des tests factices pr un travail sérieux, en effet je souhaiterais grouper les barres qui appartiennent à la mm série c'est à dire qu'il n'y ait plus d'espacement entre les barres qui sont de la mm série et garder l'espace qu'il y a avec les autres séries.

    voilà mon code pour le test:
    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
     
    	double[] doubetudiants = new double[]{
    			1,
    			2,
    			3
    	};
    	double[] doubetudiantes = new double[]{
    			4,
    			5,
    			6
    	};
     
    	String[] strannee = new String[]{
    			"2000",
    			"2001",
    			"2002"
    	};
     
    	String s = "étudiants";
    	String s1 = "étudiantes";
    	DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
    	for(int j=0;j<3;j++){
    	defaultcategorydataset.addValue(doubetudiants[j],s,strannee[j]);
    		defaultcategorydataset.addValue(doubetudiantes[j],s1,strannee[j]);
    	}
    	JFreeChart graphe = ChartFactory.createBarChart("test", "Année", "Nbre d'inscris", defaultcategorydataset, PlotOrientation.VERTICAL, true, true, false);
    	graphe.setBackgroundPaint(ChartColor.white);
     
            CategoryPlot categoryplot = graphe.getCategoryPlot();
            categoryplot.setBackgroundPaint(ChartColor.lightGray);
            categoryplot.setDomainGridlinePaint(ChartColor.white);
            categoryplot.setRangeGridlinePaint(ChartColor.white);
     
            NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
            numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            numberaxis.setUpperMargin(0.14999999999999999D);
            numberaxis.setAutoRange(false);
            CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
            categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
            CategoryAxis categoryaxis = categoryplot.getDomainAxis();
            categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
     
            try{
    			ChartUtilities.saveChartAsPNG(new File("chartHisto2D.png"), graphe, 500,300);
    		}catch(Exception e){System.out.println("plop");};
    pouvez vous m'indiquez sur quel paramètre travailler pour arriver a enlever ou réduire cet espace?

    merci d'avance

  2. #2
    Membre éclairé
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    81
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 81
    Par défaut
    Je ne penses pas si l'on peut faire sa avec un paramètre je crois plutôt qu'il faudrait hériter de la classe CategoryItemRenderer et redéfinir les méthodes de rendu des barres.
    J'ai à faire une modification "similaire" sur l'emplacement des barres avec un BarRenderer, je m'en suis sortit en modifiant la méthode drawItem et les méthodes de calcul du positionnement éléments.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 5
    Par défaut réussi dsl pr le retard :/
    enfin vaut mieux tard que jamais.

    J'avais réussi donc a espacer comme je le souhaitais mon histogramme, il fallait caster le Render en barRender pr pouvoir utiliser la fonction setItemMargin() pour pouvoir réduire a zéro l'espacement entre les barres de la mm série comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    BarRenderer br = (BarRenderer)categoryplot.getRenderer();
    br.setItemMargin(0.0);

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/06/2007, 09h19
  2. Réponses: 24
    Dernier message: 30/05/2007, 13h53
  3. Réponses: 3
    Dernier message: 04/05/2007, 15h49
  4. [Jfreechart] Afficher intitulé barre dans un histogramme
    Par keumlebarbare dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 28/11/2006, 15h57
  5. Réponses: 2
    Dernier message: 02/06/2006, 20h17

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