je voudrais faire dans un seul graphe des AreaChart et XYChart est ce que c'est possible ? et si oui comment faire.
Merci d'avance.
je voudrais faire dans un seul graphe des AreaChart et XYChart est ce que c'est possible ? et si oui comment faire.
Merci d'avance.
Salut,
oui c'est possible de le faire et cela fait partie des exemples fournis avec JFreeChart.
Matthieu
j'ai vu les exemples mais les courbes ne sont pas sur les mêmes axes mais ils sont séparés moi je veux sur le même graphe avec les mêmes axes deux types de courbes
Ce que tu veux donc par exemple c'est afficher un graphe en barres et une courbe sur un même axe. C'est ça ?Envoyé par noussa_nouha
Matthieu
As-tu regardé CombinedTimeSeriesDemo1 qui se trouve dans le jar de Demo de JFreeChart ?
Le graphe qui se trouve à droite semble correspondre à ton besoin non ?
Mc Foggy:
c'est exactement ce que je veux
C nvy:
je vais le voir mais je pense pas qu'il correspond parceque moi je travail pas avec des timeSeries
Donc, si c'est un histogramme combiné avec une ou plusieurs courbes que tu veux, regarde plutôt OverlaidBarChartDemo1 dans Miscellaneous.
En simplifiant un peu cet example, on arrive à :Envoyé par c_nvyJe pense que ça commence à ressembler à ce que tu veux.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 import java.awt.Dimension; import javax.swing.JPanel; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.*; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.plot.*; import org.jfree.chart.renderer.category.*; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; public class OverlaidBarChartDemo1 extends ApplicationFrame { public OverlaidBarChartDemo1(String s) { super(s); JPanel jpanel = createDemoPanel(); jpanel.setPreferredSize(new Dimension(500, 270)); setContentPane(jpanel); } public static JFreeChart createChart() { // SET UP THE BAR GRAPH DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset(); defaultcategorydataset.addValue(1.0D, "S1", "Category 1"); defaultcategorydataset.addValue(4D, "S1", "Category 2"); defaultcategorydataset.addValue(3D, "S1", "Category 3"); defaultcategorydataset.addValue(5D, "S1", "Category 4"); defaultcategorydataset.addValue(5D, "S1", "Category 5"); defaultcategorydataset.addValue(7D, "S1", "Category 6"); defaultcategorydataset.addValue(7D, "S1", "Category 7"); defaultcategorydataset.addValue(8D, "S1", "Category 8"); StandardCategoryItemLabelGenerator standardcategoryitemlabelgenerator = new StandardCategoryItemLabelGenerator(); BarRenderer barrenderer = new BarRenderer(); barrenderer.setItemLabelGenerator(standardcategoryitemlabelgenerator); barrenderer.setItemLabelsVisible(true); // LineAndShapeRenderer renderer = new LineAndShapeRenderer(); // renderer.setItemLabelGenerator(standardcategoryitemlabelgenerator); // renderer.setItemLabelsVisible(true); CategoryPlot categoryplot = new CategoryPlot(); categoryplot.setDataset(defaultcategorydataset); categoryplot.setRenderer(barrenderer); // categoryplot.setRenderer(renderer); categoryplot.setDomainAxis(new CategoryAxis("Category")); categoryplot.setRangeAxis(new NumberAxis("Value")); categoryplot.setOrientation(PlotOrientation.VERTICAL); categoryplot.setRangeGridlinesVisible(true); categoryplot.setDomainGridlinesVisible(true); DefaultCategoryDataset defaultcategorydataset1 = new DefaultCategoryDataset(); defaultcategorydataset1.addValue(9D, "T1", "Category 1"); defaultcategorydataset1.addValue(7D, "T1", "Category 2"); defaultcategorydataset1.addValue(2D, "T1", "Category 3"); defaultcategorydataset1.addValue(6D, "T1", "Category 4"); defaultcategorydataset1.addValue(6D, "T1", "Category 5"); defaultcategorydataset1.addValue(9D, "T1", "Category 6"); defaultcategorydataset1.addValue(5D, "T1", "Category 7"); defaultcategorydataset1.addValue(4D, "T1", "Category 8"); LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer(); categoryplot.setDataset(1, defaultcategorydataset1); categoryplot.setRenderer(1, lineandshaperenderer); NumberAxis numberaxis = new NumberAxis("Axis 2"); categoryplot.setRangeAxis(1, numberaxis); // LineAndShapeRenderer lineandshaperenderer1 = new LineAndShapeRenderer(); // categoryplot.setRenderer(2, lineandshaperenderer1); // categoryplot.mapDatasetToRangeAxis(2, 1); categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); // categoryplot.getDomainAxis().setCategoryLabelPositions(CategoryLabelPositions.UP_45); // WE DON'T NEED THE MARGIN - PADDING - FIX !! categoryplot.getDomainAxis().setLowerMargin(0); categoryplot.getDomainAxis().setUpperMargin(0); JFreeChart jfreechart = new JFreeChart(categoryplot); jfreechart.setTitle("Overlaid Bar Chart"); return jfreechart; } public static JPanel createDemoPanel() { JFreeChart jfreechart = createChart(); return new ChartPanel(jfreechart); } public static void main(String args[]) { OverlaidBarChartDemo1 overlaidbarchartdemo1 = new OverlaidBarChartDemo1("Overlaid Bar Chart Demo"); overlaidbarchartdemo1.pack(); RefineryUtilities.centerFrameOnScreen(overlaidbarchartdemo1); overlaidbarchartdemo1.setVisible(true); } }
Matthieu
Merci c'est comme ça que je voulais j'ai adapté le code comme je veux et ça marche
je travail avec des StackedAreaChart et 2 LineChart
Merci encore pour l'aide
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