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] Mettre en forme l'axe des abcisses


Sujet :

2D Java

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 188
    Points : 66
    Points
    66
    Par défaut [JFreeChart] Mettre en forme l'axe des abcisses
    Bonjour
    je voudrai affiché un histogramme en utilisant jfreechart .mon problème c'est que je ne veut pas afficher toutes les valeurs de l'axe des X (de 0 a 255)
    je veut afficher une valeur toute les 8 valeurs c a d 0 8 16 24 32 .... au lieu de 012345678910111213....255
    le programme ne me permet pas d'exploiter la methode setDomainAxis() avec un NumberAxis comme paramètre .
    et je change l'objet de type CategoryPlot en XYPlot le programme me donne l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jfree.chart.plot.CategoryPlot cannot be cast to org.jfree.chart.plot.XYPlot
    	at org.jfree.chart.JFreeChart.getXYPlot(JFreeChart.java:853)
    	at ImgHst.createHstFrame(ImgHst.java:86)

    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
     
    public ChartFrame createHstFrame()
     
    	 {		
     
           DefaultCategoryDataset ensHistg = new  DefaultCategoryDataset();
     
    	 for (int i=0; i < imgHistogram.getNumBins(bandesCouleurs);i++)
    	     {  
    	     ensHistg.setValue(imgHistogram.getBinSize(bandesCouleurs,i), "Gray",  ""+ i);
    	     }
    		JFreeChart myChart = ChartFactory.createBarChart("Histograme", "TTTTT", "gggggg", ensHistg,PlotOrientation.VERTICAL ,false,true,true);
    		CategoryPlot P =myChart.getCategoryPlot();
    		NumberAxis valueScaleRange = new NumberAxis("Titre");
    		valueScaleRange.setRange(0.0, maxHistValeurs  );
    		P.setRangeAxis(valueScaleRange);
    		NumberAxis valueScaleDomain = new  NumberAxis("Titre");
    	        P.setDomainAxis(valueScaleDomain); // erreur !!!!!
     
    		P.setRangeGridlinePaint(Color .black );
    		ChartFrame frame =new ChartFrame("Histogram", myChart);
                   frame.setVisible(true);
    	       frame.setSize(450, 350);
    		return frame;
     
    	}
    merci

  2. #2
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 188
    Points : 66
    Points
    66
    Par défaut
    bonjour mes amis
    vraiment j'ai besoin de vos contributions alors n’hésitais pas a me soutenir avec une reéponse

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 188
    Points : 66
    Points
    66
    Par défaut
    j'ai réglé mon problème
    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
     
    private XYSeries createSerie(int bande_couleur)
    	{
    		XYSeries s = new XYSeries("S");
    	       for(int i=0;i < imgHistogram.getNumBins(bande_couleur);i++) 
    	       {
    	    	s.add(i, imgHistogram.getBinSize(bande_couleur,i));
    	       }	
    	       return s;
    	}
    	public void setBandeCouleur(int b)
    	{
    		this.bandesCouleurs =b;
    	}
    	public ChartFrame createHstFrame()
    	 { 
    		XYSeriesCollection ensHistg = new XYSeriesCollection(createSerie(bandesCouleurs));
    	 	JFreeChart myChart = ChartFactory.createXYBarChart("Histograme", "Intensité",false,"Nombre des Pixels", ensHistg,PlotOrientation.VERTICAL ,false,true,true);
    		XYPlot plot = (XYPlot) myChart.getPlot();  
    	    NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
    	    xAxis.setLowerBound(0);
            NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
    	    yAxis.setLowerBound(0);
            XYItemRenderer renderer = plot.getRenderer();
            switch(bandesCouleurs)
            {
            case 0: renderer.setSeriesPaint(0, Color.red );break;
            case 1: renderer.setSeriesPaint(0, Color.green );break;
            case 2: renderer.setSeriesPaint(0, Color.blue );break;
            }
    		ChartFrame frame =new ChartFrame("Histogram", myChart);
            frame.setVisible(true);
            frame.pack();
    	    frame.setSize(450, 350);
    		return frame;
     
    	 }

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

Discussions similaires

  1. [Débutant] Tracer le temps sur l'axe des abcisses sous forme 'HH:MM:SS'
    Par Matlab2014 dans le forum MATLAB
    Réponses: 15
    Dernier message: 07/01/2015, 16h16
  2. [JFreeChart] Enlever un mois à l'axe des temps
    Par Ceubex dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 24/08/2011, 15h33
  3. [AC-2000] Graphique dynamique et axe des abcisses
    Par electronedf dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/11/2010, 11h41
  4. nommer l'axe des abcisses sur un graphique
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/12/2007, 17h59
  5. Axe des abcisses logarithmique
    Par blooby dans le forum IHM
    Réponses: 4
    Dernier message: 04/05/2007, 21h56

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