JavaFX - Graphique en courbes

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. Un graphique linéaire montre comment les données changent à une fréquence égale.

Voici un graphique linéaire illustrant le nombre d'écoles au cours des différentes années.

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.

Étapes pour générer un graphique en courbes

Pour générer un graphique en courbes dans JavaFX, vous devez suivre les étapes ci-dessous.

Étape 1: Créer une classe

Créez une classe Java et héritez du Application classe du package javafx.application. Vous pouvez ensuite implémenter lestart() méthode de cette classe comme suit.

public class ClassName extends Application { 
   @Override     
   public void start(Stage primaryStage) throws Exception {     
   }    
}

Étape 2: définition de l'axe

Définissez les axes X et Y du graphique linéaire et attribuez-leur des étiquettes.

Dans notre exemple, l'axe X représente les années allant de 1960 à 2020 avec une graduation majeure tous les dix ans.

//Defining X axis  
NumberAxis xAxis = new NumberAxis(1960, 2020, 10); 
xAxis.setLabel("Years"); 
        
//Defining y axis 
NumberAxis yAxis = new NumberAxis(0, 350, 50); 
yAxis.setLabel("No.of schools");

Étape 3: Création du graphique en courbes

Créez un graphique en courbes en instanciant la classe nommée LineChart du forfait javafx.scene.chart. Au constructeur de cette classe, transmettez les objets représentant les axes X et Y créés à l'étape précédente.

LineChart linechart = new LineChart(xAxis, yAxis);

Étape 4: préparation des données

Instancier le XYChart.Seriesclasse. Ajoutez ensuite les données (une série de coordonnées x et y) à la liste Observable de cette classe comme suit -

XYChart.Series series = new XYChart.Series(); 
series.setName("No of schools in an year"); 
        
series.getData().add(new XYChart.Data(1970, 15)); 
series.getData().add(new XYChart.Data(1980, 30)); 
series.getData().add(new XYChart.Data(1990, 60)); 
series.getData().add(new XYChart.Data(2000, 120)); 
series.getData().add(new XYChart.Data(2013, 240)); 
series.getData().add(new XYChart.Data(2014, 300));

Étape 5: Ajouter des données au graphique en courbes

Ajoutez la série de données préparée à l'étape précédente au graphique en courbes comme suit -

//Setting the data to Line chart    
linechart.getData().add(series);

Étape 6: Création d'un objet de groupe

dans le start() , créez un objet de groupe en instanciant la classe nommée Group. Cela appartient au packagejavafx.scene.

Passez l'objet LineChart (node), créé à l'étape précédente en tant que paramètre au constructeur de la classe Group. Cela devrait être fait afin de l'ajouter au groupe comme suit -

Group root = new Group(linechart);

Étape 7: Création d'un objet de scène

Créez une scène en instanciant la classe nommée Scene, qui appartient au package javafx.scene. À cette classe, transmettez l'objet Group (root), créé à l'étape précédente.

En plus de l'objet racine, vous pouvez également transmettre deux doubles paramètres représentant la hauteur et la largeur de l'écran avec l'objet de la classe Group comme suit.

Scene scene = new Scene(group ,600, 300);

Étape 8: Définition du titre de la scène

Vous pouvez définir le titre de la scène à l'aide du setTitle() méthode de la Stageclasse. leprimaryStage est un objet Stage, qui est passé à la méthode start de la classe Scene en tant que paramètre.

En utilisant le primaryStage objet, définissez le titre de la scène comme Sample Application comme suit.

primaryStage.setTitle("Sample Application");

Étape 9: Ajouter une scène à la scène

Vous pouvez ajouter un objet Scene à la scène en utilisant la méthode setScene() de la classe nommée Stage. Ajoutez l'objet Scene préparé aux étapes précédentes à l'aide de cette méthode comme suit.

primaryStage.setScene(scene);

Étape 10: Affichage du contenu de la scène

Affichez le contenu de la scène en utilisant la méthode nommée show() du Stage classe comme suit.

primaryStage.show();

Étape 11: Lancement de l'application

Lancez l'application JavaFX en appelant la méthode statique launch() du Application classe de la méthode principale comme suit.

public static void main(String args[]){   
   launch(args);      
}

Exemple

Le tableau suivant illustre le nombre d'écoles qui se trouvaient dans une région de 1970 à 2014.

An Nombre d'écoles
1970 15
1980 30
1990 60
2000 120
2013 240
2014 300

Voici un programme Java qui génère un graphique linéaire, représentant les données ci-dessus, à l'aide de JavaFX.

Enregistrez ce code dans un fichier avec le nom LineChartExample.java.

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.chart.LineChart; 
import javafx.scene.chart.NumberAxis; 
import javafx.scene.chart.XYChart; 
         
public class LineChartExample extends Application { 
   @Override 
   public void start(Stage stage) {
      //Defining the x axis             
      NumberAxis xAxis = new NumberAxis(1960, 2020, 10); 
      xAxis.setLabel("Years"); 
        
      //Defining the y axis   
      NumberAxis yAxis = new NumberAxis   (0, 350, 50); 
      yAxis.setLabel("No.of schools"); 
        
      //Creating the line chart 
      LineChart linechart = new LineChart(xAxis, yAxis);  
        
      //Prepare XYChart.Series objects by setting data 
      XYChart.Series series = new XYChart.Series(); 
      series.setName("No of schools in an year"); 
        
      series.getData().add(new XYChart.Data(1970, 15)); 
      series.getData().add(new XYChart.Data(1980, 30)); 
      series.getData().add(new XYChart.Data(1990, 60)); 
      series.getData().add(new XYChart.Data(2000, 120)); 
      series.getData().add(new XYChart.Data(2013, 240)); 
      series.getData().add(new XYChart.Data(2014, 300)); 
            
      //Setting the data to Line chart    
      linechart.getData().add(series);        
        
      //Creating a Group object  
      Group root = new Group(linechart); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 400);  
      
      //Setting title to the Stage 
      stage.setTitle("Line Chart"); 
         
      //Adding scene to the stage 
      stage.setScene(scene);
	   
      //Displaying the contents of the stage 
      stage.show();         
   } 
   public static void main(String args[]){ 
      launch(args); 
   } 
}

Compilez et exécutez le fichier java enregistré à partir de l'invite de commande à l'aide des commandes suivantes.

javac LineChartExample.java 
java LineChartExample

Lors de l'exécution, le programme ci-dessus génère une fenêtre JavaFX affichant un graphique en courbes comme indiqué ci-dessous.