JavaFX - Graphiques
En général, un graphique est une représentation graphique de données. Il existe différents types de graphiques pour représenter des données telles queBar Chart, Pie Chart, Line Chart, Scatter Chart, etc.
JavaFX prend en charge divers Pie Charts et XY Charts. Les graphiques représentés sur un plan XY comprennentAreaChart, BarChart, BubbleChart, LineChart, ScatterChart, StackedAreaChart, StackedBarChart, etc.
Chaque graphique est représenté par une classe et tous ces graphiques appartiennent au package javafx.scene.chart. La classe nomméeChart est la classe de base de tous les graphiques en JavaFX et le XYChart est la classe de base de tous ces graphiques dessinés sur le plan XY.
Créer un graphique
Pour créer un graphique, vous devez -
- Définir l'axe du graphique
- Instanciez la classe respective
- Préparer et transmettre les données au graphique
Instanciation de la classe respective
Pour créer un graphique, instanciez sa classe respective. Par exemple, si vous souhaitez créer un graphique en courbes, vous devez instancier la classe nomméeLine comme suit -
LineChart linechart = new LineChart(xAxis, yAxis);
Comme observé dans le code ci-dessus, lors de l'instanciation, vous devez passer deux objets représentant respectivement les axes X et Y du graphique.
Définition de l'axe
En général, l'axe des graphiques peut être représenté par -
- Des nombres tels que la population, l'âge et
- Catégories telles que jours dans une semaine, pays.
Dans JavaFX, un axe est une classe abstraite représentant l'axe X ou Y. Il comporte deux sous-classes pour définir chaque type d'axe, à savoirCategoryAxis et NumberAxis comme indiqué dans le schéma suivant -
Category Axis- En instanciant cette classe, vous pouvez définir (créer) un axe X ou Y le long duquel chaque valeur représente une catégorie. Vous pouvez définir un axe Catégorie en instanciant cette classe comme indiqué ci-dessous -
CategoryAxis xAxis = new CategoryAxis();
Pour cet axe, vous devez définir la liste des catégories et l'étiquette sur l'axe comme indiqué ci-dessous -
//setting the list of categories.
xAxis.setCategories(FXCollections.<String>observableArrayList
(Arrays.asList("n ame1", "name2"….)));
//Setting label to the axis
xAxis.setLabel("name of the axis ");
NumberAxis- En instanciant cette classe, vous pouvez définir (créer) un axe X ou Y le long duquel chaque valeur représente une valeur numérique. Vous pouvez utiliser n'importe quel type de nombre avec ceAxis, Long, Double, BigDecimal, etc. Vous pouvez définir un axe numérique en instanciant cette classe comme suit -
//Defining the axis
NumberAxis yAxis = new NumberAxis();
//Setting labelto the axis
yAxis.setLabel("name of the axis");
Transmission de données aux graphiques XY
Tous les diagrammes XY sont représentés le long du plan XY. Pour tracer un ensemble de points dans un graphique, nous devons spécifier une série de coordonnées XY.
le <X,Y> classe de la javafx.scene.chartpackage est une classe à l'aide de laquelle vous pouvez envoyer des données à un graphique. Cette classe contient une liste observable de séries nommées. Vous pouvez obtenir cette liste en utilisant legetData() méthode de XYChart.Series classe comme indiqué ci-dessous -
ObservableList list = series.getData();
Où, series est l'objet de la XYChart.Seriesclasse. Vous pouvez ajouter des données à cette liste en utilisant leadd() méthode comme suit -
list.add(new XYChart.Data(x-axis data, y-axis data));
Ces deux lignes peuvent être écrites ensemble comme indiqué ci-dessous -
series.getData().add(new XYChart.Data(x-axis data, y-axis data));
Le tableau suivant donne une description des différents graphiques (classes) fournis par JavaFX -
S. Non | Graphique et description |
---|---|
1 | Diagramme circulaire Un camembert est une représentation des valeurs sous forme de tranches d'un cercle de différentes couleurs. Ces tranches sont étiquetées et les valeurs correspondant à chaque tranche sont représentées dans le graphique. Dans JavaFX, un graphique à secteurs est représenté par une classe nommée PieChart. Cette classe appartient au packagejavafx.scene.chart. |
2 | Graphique en ligne Un graphique linéaire ou un graphique linéaire affiche les informations sous la forme d'une série de points de données (marqueurs) connectés par des segments de ligne droite. Le graphique linéaire montre comment les données changent à une fréquence égale. Dans JavaFX, un graphique linéaire est représenté par une classe nommée LineChart. Cette classe appartient au packagejavafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud LineChart dans JavaFX. |
3 | Graphique de zone Les graphiques en aires sont utilisés pour dessiner des graphiques en zones. Il trace la zone entre la série de points donnée et l'axe. En général, ce graphique permet de comparer deux grandeurs. Dans JavaFX, un graphique en aires est représenté par une classe nommée AreaChart. Cette classe appartient au packagejavafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud AreaChart dans JavaFX. |
4 | Diagramme à bandes Un graphique à barres est utilisé pour représenter des données groupées à l'aide de barres rectangulaires. La longueur de ces barres représente les valeurs. Les barres du graphique à barres peuvent être tracées verticalement ou horizontalement. Dans JavaFX, un histogramme est représenté par une classe nommée BarChart. Cette classe appartient au packagejavafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud BarChart dans JavaFX. |
5 | Graphique à bulles Un graphique à bulles est utilisé pour plaquer des données en trois dimensions. La troisième dimension sera représentée par la taille (rayon) de la bulle. Dans JavaFX, un graphique à bulles est représenté par une classe nommée BubbleChart. Cette classe appartient au packagejavafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud BubbleChart dans JavaFX. |
6 | Diagramme de dispersion Un nuage de points est un type de graphique qui utilise les valeurs de deux variables tracées dans un plan cartésien. Il est généralement utilisé pour découvrir la relation entre deux variables. Dans JavaFX, un diagramme de dispersion est représenté par une classe nommée ScatterChart. Cette classe appartient au packagejavafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud ScatterChart dans JavaFX. |
sept | Graphique à aires empilées Dans JavaFX, un graphique à aires empilées est représenté par une classe nommée StackedAreaChart. Cette classe appartient au package javafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud StackedAreaChart dans JavaFX. |
8 | Graphique à barres empilées Dans JavaFX, un graphique à barres empilées est représenté par une classe nommée StackedBarChart. Cette classe appartient au package javafx.scene.chart. En instanciant cette classe, vous pouvez créer un nœud StackedBarChart dans JavaFX. |