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] Probléme dans la création d'un histogramme


Sujet :

2D Java

  1. #1
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut [JFreeChart] Probléme dans la création d'un histogramme
    bonjour,
    aprés quelque recherche, j'ai consulté sur notre forum un sujet sur le graphe histogramme, et voila j'ai visualisé exactement une image que je souhaiterai la créer :
    voici l'image :

    c'est exactement ce que je cherche mais aprés quelque essais, j'ai crée un petit histogramme mais j'ai plusieurs couleur à la fois.

    j'ai utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        DefaultCategoryDataset  pieDataset = new DefaultCategoryDataset(); 	
        pieDataset.addValue(25.0, "Series 1", "Category 1");      
        pieDataset.addValue(34.0, "Series 2", "Category 1");   
        pieDataset.addValue(19.0, "Series 3", "Category 1");   
        pieDataset.addValue(29.0, "Series 4", "Category 1");   
        pieDataset.addValue(41.0, "Series 5", "Category 1");   
        pieDataset.addValue(33.0, "Series 6", "Category 1");
    mais je pense qu'il faudra pas travailler avec ce code.
    j'aurais besoin de votre aide, quel code je vais utiliser pour arriver à créer l'histogramme dans l'image en haut?
    merci.
    Images attachées Images attachées  
    On est là pour partager notre savoir-faire !

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Ce ne serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DefaultCategoryDataset  defaultcategorydataset= new DefaultCategoryDataset(); 
    defaultcategorydataset.addValue(25.0, "Category 1", "Series 1");      
    defaultcategorydataset.addValue(34.0, "Category 1", "Series 2");   
    defaultcategorydataset.addValue(19.0, "Category 1", "Series 3");   
    defaultcategorydataset.addValue(29.0, "Category 1", "Series 4");   
    defaultcategorydataset.addValue(41.0, "Category 1", "Series 5");   
    defaultcategorydataset.addValue(33.0, "Category 1", "Series 6");
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Salut,
    Je suis d'accord avec c_nvy.

    Voici un code similaire et merci de plutot demander par le forum au lieu par mp

    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
    public static JFreeChart getChart()
    	{
    		DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
     
    		// Première colonne: valeur
    		// Seconde catégorie, si toutes 1, alors même couleur, sinon différente
    		// couleur.
    		dataSet.addValue(100, new Integer(1), "Consumption");
    		dataSet.addValue(150, new Integer(1), "Emission in athmosphere");
    		dataSet.addValue(300, new Integer(1), "Global noise");
    		dataSet.addValue(450, new Integer(1), "Amount of plateforms");
    		dataSet.addValue(750, new Integer(1), "Recycling of materials");
    		dataSet.addValue(1000, new Integer(1), "Process costs");
    		dataSet.addValue(200, new Integer(1), "Fuel costs");
    		dataSet.addValue(215, new Integer(1), "Integration");
    		dataSet.addValue(200, new Integer(1), "Continuity");
    		dataSet.addValue(915, new Integer(1), "Durability");
     
    		JFreeChart chart = ChartFactory.createBarChart3D("Exemple de Maquette",
    				"Contradictions nommées par les paramètres", "Valeurs",
    				dataSet, PlotOrientation.VERTICAL, false, true, true);
     
    		CategoryPlot cPlot = chart.getCategoryPlot();
     
    		// Pour changer la transparence: 65 est un bon nombre...
    		// cPlot.setForegroundAlpha(0.65f);
     
    		// TODO voir la différence entre chartColor et color.
     
    		ChartColor color = new ChartColor(250, 190, 50);
    		CategoryItemRenderer ciRenderer = cPlot.getRenderer();
    		ciRenderer.setSeriesPaint(0, color);
     
    		// To modify the label orientation.
    		CategoryAxis catAxis = cPlot.getDomainAxis();
    		catAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
     
    		ItemLabelPosition ilp = new ItemLabelPosition(ItemLabelAnchor.CENTER,
    				TextAnchor.CENTER, TextAnchor.CENTER, -Math.PI / 2);
     
    		cPlot.getRenderer().setBasePositiveItemLabelPosition(ilp);
     
    		// XYLineAndShapeRenderer xyRenderer =
    		// (XYLineAndShapeRenderer)chart.getXYPlot().getRenderer();
     
    		chart.getCategoryPlot().getRenderer();
     
    		return chart;
    	}

  4. #4
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    d'accord.
    et merci beaucoup pour l'exemple.
    je vais l'essayer.
    On est là pour partager notre savoir-faire !

  5. #5
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    oui ca me parait trés bien.
    est ce que c'est possible d'afficher les valeurs au sommet des bar ?

    Merci d'avance.
    On est là pour partager notre savoir-faire !

  6. #6
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Peut être... on va pas tout te faire à ta place

    Cf ici ca m'a beaucoup aidé: http://www.jfree.org/phpBB2/viewforum.php?f=3

  7. #7
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    pardon,
    je pense que tu m'as aidé pour réaliser mon histograme, mais de me disais :
    Citation Envoyé par schneidb
    on va pas tout te faire à ta place
    je ne trouve pas que ca c'est bien.
    et d'ailleurs toi aussi tu auras besoin d'aide dans un moment, si tu conais la réponse tu doit le donner aux autres, car la recherche nous demande beaucoup de temps, alors pourquoi pas d'aller directement à la solution et si on l'expliquera bien ca ajoutera un plus pour ces personnes.
    dans tous les cas merci pour ton aide.
    On est là pour partager notre savoir-faire !

  8. #8
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Désolé mais dans ce contexte, surtout JFreechart, où la documentation est payante: 40 € les 650pages. Je (ma boite) ne m'a pas permis de l'acheter .

    Je peux te garantir que:
    J'ai passé 3-4jours à galérer sur 3forums pour arriver à mon résultat, tu peux t'estimer heureux d'avoir des réponses de qualités, que je n'ai pas eu.
    si j'avais la réponse je te l'aurais donné.
    ensuite je persiste, on peut t'aider, mais pas te donner la réponse toute faite si on ne l'a pas !

  9. #9
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Il est vrai qu'il existe un moyen simple pour trouver une solution à ton problème.

    Lorsque tu télécharges JFreeChart, il y a un jar de demo avec des tas d'exemples et notamment un qui correspond à ton besoin, soit par exemple la classe BarChartDemo5 de la version 1.0.5 qui se trouve dans jfreechart-1.0.5-demo.jar.

    Pour avoir accès au code source, il suffit de télécharger un décompilateur 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.

    Je te donne quand même ci-dessous le code qui te permettra d'afficher les valeurs au-dessus des barres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CategoryPlot categoryPlot = jfreechart.getCategoryPlot();
     
    BarRenderer barRenderer = (BarRenderer) categoryPlot.getRenderer();
    barRenderer.setBaseItemLabelsVisible(true);
    barRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    Et comme l'a précisé schneidb, tu peux également trouver des réponses sur le forum de JFreeChart.
    Modératrice Java - Struts, Servlets/JSP, ...

  10. #10
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    bon merci beaucoup,
    et je m'excuse pour ce que j'ai dis.
    d'accord merci pour l'information.
    en plus je vais essayer ton code.
    j'ai aussi une question mais je vous dites que j'ai essayé tous les cas possible dans mon code avant de poster cette question :
    comment forcer l'axe ,qui contient les valeures , d'afficher des valeurs entier (1,2,5, ca dépond des valeurs) car pour l'instant il m'affiche des valeurs avec la vergule (1.5).
    Merci et bonne soirée.
    On est là pour partager notre savoir-faire !

  11. #11
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Pour afficher des valeurs entières, essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            NumberAxis numberAxis = (NumberAxis) categoryPlot.getRangeAxis();
            numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    Modératrice Java - Struts, Servlets/JSP, ...

  12. #12
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    bonjour,
    merci c_nvy et schneidb pour votre aide ainsi pour vos réponses, qui sont toujours faisable et corrects.
    je pense que j'ai bien appris l'API JfreeChart, au moins queqlue truc, et ça c'est grâce à vous, et au premier lieu c_nvy

    je pense qu'il me reste une petite chose pour boucler cet boulot.
    la chose c'est lorsque j'ai utilisé le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    BarRenderer barRenderer = (BarRenderer) plot3.getRenderer();
    barRenderer.setBaseItemLabelsVisible(true); 
    barRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    c'est vrai que les valeurs s'affichent sur les Sommets des bars, mais si j'ai par exemple une valeure de (5000.5), elle s'affiche pas, car elle a besoin d'un bar qui a une largeure assez sufusante pour l'afficher.
    et mon graphe a une taille de (460,150).
    Est ce que c'est possible de mettre la valeure en extérieure du bar? cad en haut de chaque bar et non dedans.
    On est là pour partager notre savoir-faire !

  13. #13
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            barRenderer.setPositiveItemLabelPosition(new ItemLabelPosition( 
            		ItemLabelAnchor.OUTSIDE12, 
            		TextAnchor.BOTTOM_LEFT, TextAnchor.BOTTOM_LEFT, 
            		0.0));
    Modératrice Java - Struts, Servlets/JSP, ...

  14. #14
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    bonjour,
    désolé ca marche pas chez moi ce code :
    Citation Envoyé par c_nvy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            barRenderer.setPositiveItemLabelPosition(new ItemLabelPosition( 
            		ItemLabelAnchor.OUTSIDE12, 
            		TextAnchor.BOTTOM_LEFT, TextAnchor.BOTTOM_LEFT, 
            		0.0));
    On est là pour partager notre savoir-faire !

  15. #15
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Quelle version de JFreeChart utilises-tu ?

    ça génère une erreur ou ça n'a aucun effet ?
    Modératrice Java - Struts, Servlets/JSP, ...

  16. #16
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    ça n'a aucun effet, j'ai utilise la version jfreechart-1.0.0.jar.
    On est là pour partager notre savoir-faire !

  17. #17
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Si utiliser la 1.0.0 n'est pas une obligation, je te conseille de télécharger la 1.0.5.
    Modératrice Java - Struts, Servlets/JSP, ...

  18. #18
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    et ca marchera le truc avec cette version?
    y aura aucun effet pour les classes qui ont utilisé la version 1.0.0?
    On est là pour partager notre savoir-faire !

  19. #19
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Ben je suppose puisque ça fonctionne chez moi.
    Modératrice Java - Struts, Servlets/JSP, ...

  20. #20
    Membre habitué Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 326
    Points : 132
    Points
    132
    Par défaut
    bon j'ai utilisé la version 1.0.5 mais rien de plus.
    On est là pour partager notre savoir-faire !

Discussions similaires

  1. Problème dans la création du serveur d'état
    Par huntaro dans le forum Forms
    Réponses: 2
    Dernier message: 22/10/2008, 12h00
  2. problème dans la création d'une requête
    Par LeCogiteur dans le forum Langage SQL
    Réponses: 0
    Dernier message: 25/02/2008, 00h43
  3. Réponses: 2
    Dernier message: 10/12/2007, 18h47
  4. Réponses: 1
    Dernier message: 23/05/2007, 18h30
  5. [Eclipse 3.0] [Tomcat] problème dans la création du .war
    Par lipao17 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/03/2005, 13h45

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