JavaFX - Graphique à bulles

Un graphique à bulles est utilisé pour planter des données en trois dimensions; la troisième dimension sera représentée par la taille (rayon) de la bulle.

Ce qui suit est un graphique à bulles illustrant le travail effectué.

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.

Étapes pour générer un graphique à bulles

Pour générer un graphique à bulles dans JavaFX, suivez 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 mettre en œuvre 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 à bulles et attribuez-leur des étiquettes. Dans notre exemple, l'axe X représente l'âge, l'axe Y représente le poids. Tandis que, le rayon de la bulle représente le travail effectué.

//Defining the X axis               
NumberAxis xAxis = new NumberAxis(0, 100, 10);        
xAxis.setLabel("Age");  

//Defining Y axis        
NumberAxis yAxis = new NumberAxis(20, 100, 10); 
yAxis.setLabel("Weight");

Étape 3: Création du graphique à bulles

Créez un graphique en courbes en instanciant la classe nommée BubbleChart 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.

//Creating the Bubble chart 
BubbleChart bubbleChart = new BubbleChart(xAxis, yAxis);

Étape 4: préparation des données

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

//Prepare XYChart.Series objects by setting data        
XYChart.Series series = new XYChart.Series();  
series.setName("work");  

series.getData().add(new XYChart.Data(10,30,4));  
series.getData().add(new XYChart.Data(25,40,5)); 
series.getData().add(new XYChart.Data(40,50,9)); 
series.getData().add(new XYChart.Data(55,60,7));    
series.getData().add(new XYChart.Data(70,70,9));        
series.getData().add(new XYChart.Data(85,80,6));

Étape 5: Ajouter des données au graphique à bulles

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

//Setting the data to bar chart        
bubbleChart.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 BubbleChart (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(bubbleChart);

É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, ainsi que 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 la méthode suivante.

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

Considérons différentes personnes avec leur âge, leur poids et leurs capacités de travail. La capacité de travail peut être traitée comme le nombre d'heures qui est représenté sous forme de bulles dans le graphique.

POIDS
ÂGE
30 40 50 60 70 80
dix 4 TRAVAIL
25 5
40 6
55 8
70 9
85 15

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

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

import javafx.application.Application; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.scene.chart.BubbleChart; 
import javafx.stage.Stage;  
import javafx.scene.chart.NumberAxis; 
import javafx.scene.chart.XYChart; 
         
public class BubbleChartExample extends Application { 
   @Override 
   public void start(Stage stage) {     
      //Defining the axes               
      NumberAxis xAxis = new NumberAxis(0, 100, 10);        
      xAxis.setLabel("Age"); 
        
      NumberAxis yAxis = new NumberAxis(20, 100, 10); 
      yAxis.setLabel("Weight"); 
      
      //Creating the Bubble chart 
      BubbleChart bubbleChart = new BubbleChart(xAxis, yAxis);    
         
      //Prepare XYChart.Series objects by setting data        
      XYChart.Series series = new XYChart.Series();  
      series.setName("work"); 
         
      series.getData().add(new XYChart.Data(10,30,4));  
      series.getData().add(new XYChart.Data(25,40,5)); 
      series.getData().add(new XYChart.Data(40,50,9)); 
      series.getData().add(new XYChart.Data(55,60,7));    
      series.getData().add(new XYChart.Data(70,70,9));        
      series.getData().add(new XYChart.Data(85,80,6));
      
      //Setting the data to bar chart         
      bubbleChart.getData().add(series); 
         
      //Creating a Group object  
      Group root = new Group(bubbleChart); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 400);  
      
      //Setting title to the Stage 
      stage.setTitle("Bubble 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 BubbleChartExample.java 
java BubbleChartExample

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