2010-05-03 10 views
2

J'essaie de créer un graphique à barres empilées. Ma condition est que j'ai besoin de la composition de pourcentage à l'intérieur de la barre et du compte total sur le dessus de la barre. S'il vous plaît suggérer des solutions.Graphique à barres empilées avec composition en pourcentage à l'intérieur de la barre et total au-dessus de la barre dans JFreeChart

Mon exigence: Exemple: http://www.jfree.org/jfreechart/api/javadoc/images/StackedBarRenderer3DSample.png

Je veux composition en pourcentage dans la barre et de la composition totale sur la partie supérieure de la barre.

+0

Code Reformaté; s'il vous plaît revenir si incorrect. – trashgod

Répondre

1

Il n'est pas clair ce que vous faites maintenant, mais l'utilisation d'un StackedBarRenderer avec setRenderAsPercentages(true) affichera les pourcentages. Pour obtenir le total, étendez StackedBarRenderer, parcourez l'ensemble de données pour chaque colonne et remplacez drawItem() pour dessiner le résultat. Un exemple peut être trouvé dans le JFreeChart Demo dans le cadre de StackedBarChartDemo3.

En guise d'alternative, considérez un CategoryToolTipGenerator personnalisé, ajouté via setBaseToolTipGenerator().

Addendum: Vous avez lié à un exemple en utilisant StackedBarRenderer3D, qui a également une méthode setRenderAsPercentages(). Il peut être étendu de manière similaire.

+0

Cheers mate, ça a marché. J'ai étendu le StackedBarRenderer et ajouté un CategoryToolTipGenerator à lui. Merci!!! – SKR

1

J'ai également rencontré le même problème. Pour une raison quelconque, la dernière version de JFreeChart n'affiche pas la composition en pourcentage à l'intérieur de la barre. Voici comment je l'ai eu à travailler:

StackedBarRenderer br = new StackedBarRenderer(true); //enable perc. display 
    br.setBarPainter(new StandardBarPainter()); 
    br.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); 
    br.setBaseItemLabelsVisible(true); 
    chart.getCategoryPlot().setRenderer(br); 

Hope this helps

Questions connexes