Bonjour,
pensez vous qu'il soit possible de rajouter sur mes histogrammes leur valeur dans ce style la ?
Edit : Désolé pour le double topic... Bug du pc
Bonjour,
pensez vous qu'il soit possible de rajouter sur mes histogrammes leur valeur dans ce style la ?
Edit : Désolé pour le double topic... Bug du pc
dans la démo il y a
- Bar Charts
- category plot
- BarChart3DDemo4.java
qui m'a l'aire de bien répondre a ce que tu cherche donc tu a l'exemple
Ok merci pour l'astuce je n'avais pas pensé à regarder les démos...
Je suis entrain de les confronter pour voir qu'elle ligne permet de les afficher. Si je trouve je reviendrais la marquer.
Bon j'ai pourtant essayé toutes les éléments de l'exemple mais rien...
Apparemment ça ne serait pas compatible avec un CategoryItemRenderer...
Voila ! Merci
tu est sur BarChartDemo8 a l'aire pas mal
http://code.google.com/p/test-chart/...?spec=svn2&r=2
Voici mon code... J'ai beau comparé je ne vois pas...
Merci pour l'aide
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 final CategoryItemRenderer renderer = new BarRenderer3D(); renderer.setItemLabelsVisible(true); final CategoryPlot plot = new CategoryPlot(); plot.setDataset(data); plot.setRenderer(renderer); plot.setDomainAxis(new CategoryAxis()); plot.getDomainAxis(0).setTickLabelFont(new Font("Arial",Font.PLAIN,8)); plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes")); plot.setOrientation(PlotOrientation.VERTICAL); plot.setRangeGridlinesVisible(true); plot.setDomainGridlinesVisible(true); // Passer l'axe des abscisses en entiers NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis(); numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
c'est qu'il y a dans cette méthode qu'il faut reprendre
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 private static JFreeChart createChart(CategoryDataset categorydataset) { JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 8", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, false, true, false); jfreechart.setBackgroundPaint(Color.white); CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot(); categoryplot.setBackgroundPaint(Color.lightGray); categoryplot.setRangeGridlinePaint(Color.white); NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis(); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setUpperMargin(0.14999999999999999D); CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer(); categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE); CategoryAxis categoryaxis = categoryplot.getDomainAxis(); categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); return jfreechart; }
a mon avis ca doit pas etre loing de
Code : Sélectionner tout - Visualiser dans une fenêtre à part categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
Oui c'est justement la ligne sur laquelle je suis entrain de réfléchir...
Je cherche comment elle fonctionne et ce qu'elle signifie...
Le problème étant que dans le BarChartDemo5, il n'y a pas cette ligne et pourtant on voit bien les nombres sur les bars...
je vien de compiler le BarChartDemo5 et il n'y a pas de valeur sur les bars
par contre sur demo8 j'ai ajouté
et j'ai bien les label sur les 3 bar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
ok... bizarre
sur celui la normalement il y en a BarChart3DDemo4
ça doit venir de :
Mais dans mon code il est barré... je ne sais pas ce que cela signifie. Pas compatible avec CategoryItemRenderer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part renderer.setItemLabelsVisible(true);
sur demo8 j'ai ajouté
et j'ai bien les label sur les 3 bar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
si le nom de la methode est barré c'est que celle ci est Depreated c'est a dire qu'il faut evité de l'utiliser dans leur javadoc tu a les méthode auxquelles il faut ce référé pour fair la même chose
cette methode est egalement deprecated pour les 3DBAR et elle ne donne pas le comportement que tu cherche
elle permette d'afficher un texte pour une catégorie (d'après ce que je comprend )
en fait la c'est toi qui crée de tout pièce ton Annotation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CategoryTextAnnotation a = new CategoryTextAnnotation("Minimum grade to pass", "Robert", 0.71); a.setCategoryAnchor(CategoryAnchor.START); a.setFont(new Font("SansSerif", Font.PLAIN, 12)); a.setTextAnchor(TextAnchor.BOTTOM_LEFT); plot.addAnnotation(a);
Ok merci,
as tu essayé de mettre false à :
dans l'exemple demo4 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part renderer.setItemLabelsVisible(true);
Je n'arrive pas à le compiler, une librairie que je ne trouve pas.
Merci
true ou false niveau rendu visuelle cela ne change rien
Ok,
je viens de rajouter renderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
mais rien ne se passe... je continue mes recherches dans cette voie
mette moi la partie de code que tu exécute pour crée ton JFreeChart c'est peut être une erreur que tu ne vois pas
Voila la partie concernée :
Merci beaucoup pour ton aide sincèrement !!!
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 final CategoryItemRenderer renderer = new BarRenderer3D(); //renderer.setItemLabelsVisible(true); renderer.setSeriesItemLabelsVisible(1, true); renderer.setBaseItemLabelsVisible(true); final CategoryPlot plot = new CategoryPlot(); plot.setDataset(data); plot.setRenderer(renderer); plot.setDomainAxis(new CategoryAxis()); plot.getDomainAxis(0).setTickLabelFont(new Font("Arial",Font.PLAIN,8)); plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes")); plot.setOrientation(PlotOrientation.VERTICAL); plot.setRangeGridlinesVisible(true); plot.setDomainGridlinesVisible(true); // Passer l'axe des abscisses en entiers NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis(); numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
alors je pense savoir d'ou ton problème viens tu crée un nouveau CategoryItemRenderer et un nouveau CategoryPlot alors qu'il faut prendre celui de ton jFreeChart
et la ça doit marcher du moins pour moi ça marche
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 // tu crée un freechart JFreeChart jfreechart = ChartFactory.createBarChart3D("Bar Chart Demo 8", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, false, true, false); // tu recupere le categoryPlot de ton jfreechart // final CategoryPlot plot = new CategoryPlot(); a modifier par : CategoryPlot plot = (CategoryPlot) jfreechart.getPlot(); plot.setDomainAxis(new CategoryAxis()); plot.getDomainAxis(0).setTickLabelFont(new Font("Arial", Font.PLAIN, 8)); plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes")); plot.setOrientation(PlotOrientation.VERTICAL); plot.setRangeGridlinesVisible(true); plot.setDomainGridlinesVisible(true); // tu recupere le render de CategoryPlot // final CategoryItemRenderer renderer = new BarRenderer3D(); par : CategoryItemRenderer categoryitemrenderer = plot.getRenderer(); categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE); categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
Ok parfait ça marche ! Merci !
Il faut maintenant que je l'applique à mes courbes car j'ai des histo + courbes
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager