Bonjour,
je voudrais savoir s'il est possible de donner une courbe de la forme y = ax2 + bx + c avec (a,b,c) connu à JChart et qu'il la trace
Merci pour votre aide
Bonjour,
je voudrais savoir s'il est possible de donner une courbe de la forme y = ax2 + bx + c avec (a,b,c) connu à JChart et qu'il la trace
Merci pour votre aide
Oui, je ne sais pas si c'est la meilleure des solutions, mais tu peux essayer quelque chose comme cela :
Tu auras ta courbe entre 0 et 10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 final XYSeries serie = new XYSeries("blabla"); for (int i = 0; i < 100; i++) { x = i / 10; y = a * x * x + b * x + c; serie.add(x, y); } final XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(serie);
Merci pour ta réponse
J'ai testé ton code avec ce code JChart pour tracer la courbe :
et cela fonctionne parfaitement
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 DataSeries dataSeries = new DataSeries( xAxisLabels, xAxisTitle, yAxisTitle, title ); Paint[] paints= TestDataGenerator.getRandomPaints( 1 ); Stroke[] strokes= { LineChartProperties.DEFAULT_LINE_STROKE }; LineChartProperties lineChartProperties= new LineChartProperties( strokes, shapes ); AxisChartDataSet axisChartDataSet= new AxisChartDataSet( data, legendLabels, paints, ChartType.LINE, lineChartProperties ); dataSeries.addIAxisPlotDataSet( axisChartDataSet ); ChartProperties chartProperties= new ChartProperties(); AxisProperties axisProperties= new AxisProperties(); DataAxisProperties dataAxisProperties= (DataAxisProperties) axisProperties.getYAxisProperties(); dataAxisProperties.setUserDefinedScale( init, scale ); dataAxisProperties.setNumItems(nbr); LegendProperties legendProperties= new LegendProperties(); AxisChart axisChart= new AxisChart( dataSeries, chartProperties, axisProperties, legendProperties, 500, 300); return axisChart;
par contre j'ai encore deux petits problèmes.
1) Ma courbe s'affiche d'une couleur différente à chaque fois, comment faire pour fixer la couleur ?
2) est-il possible de modifier la graduation de l'axe des abscisses comme je l'ai fais pour l'axe des ordonnés ?
Merci d'avance pour votre aide
Ta courbe change de couleur a chaque fois à cause de ceci non ? :
Pour ma part, j'utilise la méthode setSeriesPaint, appliquée à mon renderer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Paint[] paints= TestDataGenerator.getRandomPaints( 1 );
Pour la graduation des abscisses, c'est possible, par contre je ne m'en suis pas encore servi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 final XYPlot plot = (XYPlot) chart.getPlot(); final XYSplineRenderer renderer = new XYSplineRenderer(50); // permet de lisser la courbe final Color[] listColor = {Color.red, Color.green, Color.blue, Color.black}; for (int i = 0; i < dataset.getSeriesCount(); i++) { renderer.setSeriesPaint(i, listColor[i % listColor.length]); } plot.setRenderer(renderer);![]()
Partager