Bonjour à tous,
Je cherche à faire un histogramme. C'est à dire pour chaque valeur différentes, affiché le nombre de résultats ayant cette valeur.
Pour ce faire, j'ai rempli un dataset (depuis une base de donnée).
Comme vous pouvez le voir en pièce jointe, mon histogramme est illisible.Les bar sont trop large et se monte les unes par dessus les autres.Nom : Histogramme.png
Affichages : 122
Taille : 11,4 Ko
Je voudrais, soit réduire la largeur des bars, mais je ne trouve pas la solution.

Ou alors, peut-être passer par des catégories pour l'abscisse, en utilisant un CategoryDataset et createBarChart. Il n'y aura ainsi plus d'échelle de valeur. et mes bars seront bien les unes à côtés des autres, qu'en pensez-vous?


Dans le cas d'une idée pour la première solution, voiçi le code qui génére le graphique.

D'avance merci.
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
private JFreeChart createStackedChart(String title, String abscisse,
			String ordonnee, TableXYDataset dataset) {
 
		NumberAxis domainAxis = new NumberAxis(abscisse);
		// domainAxis.setLowerMargin(0.01D);
		// domainAxis.setUpperMargin(0.01D);
		domainAxis.setLabelPaint(labelsColor);
		domainAxis.setAutoRangeIncludesZero(false);
		// domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
 
		NumberAxis rangeAxis = new NumberAxis(ordonnee);
		rangeAxis.setLabelPaint(labelsColor);
		rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		rangeAxis.setUpperMargin(0.15000000000000001D);
 
		StackedXYBarRenderer renderer = new StackedXYBarRenderer(0.15D);
		renderer.setBaseItemLabelsVisible(true);
		renderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
		// Afficher les populations
		renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(
				ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER));
		renderer.setShadowVisible(false);
		renderer.setDrawBarOutline(true);
		XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);
 
		JFreeChart chart = new JFreeChart(title, plot);
		chart.setBackgroundPaint(borderBackgroundColor);
		/* Définition du titre avec la font voulue et la couleur */
		TextTitle textTitle = new TextTitle(title, titleFont);
		chart.setTitle(textTitle);
		textTitle.setPaint(labelsColor);
		textTitle.setHorizontalAlignment(HorizontalAlignment.CENTER);
 
		LegendTitle lt = chart.getLegend();
		lt.setMargin(1, 1, 1, 1);
		lt.setHorizontalAlignment(HorizontalAlignment.CENTER);
		lt.setVerticalAlignment(VerticalAlignment.CENTER);
		lt.setWidth(100);
		lt.setItemFont(legendFont);
		lt.setItemPaint(labelsColor);
		chart.setAntiAlias(true);
		return chart;
 
	}