JavaFX - Gráfico circular

Un gráfico circular es una representación de valores como porciones de un círculo con diferentes colores. Estos cortes están etiquetados y los valores correspondientes a cada corte se representan en el gráfico.

A continuación, se muestra un gráfico circular que muestra las ventas móviles de varias empresas en una instancia.

En JavaFX, un gráfico circular está representado por una clase llamada PieChart. Esta clase pertenece al paquetejavafx.scene.chart.

Al crear una instancia de esta clase, puede crear un nodo PieChart en JavaFX.

Esta clase tiene 5 propiedades que son las siguientes:

  • clockwise- Este es un operador booleano; al establecer este operador como verdadero, los segmentos de datos en los gráficos circulares se organizarán en el sentido de las agujas del reloj comenzando desde el ángulo inicial del gráfico circular.

  • data - Esto representa un ObservableList objeto, que contiene los datos del gráfico circular.

  • labelLineLength - Un operador de número entero que representa la longitud de las líneas que conectan las etiquetas y los sectores del gráfico circular.

  • labelsVisible- Este es un operador booleano; al establecer este operador como verdadero, se dibujarán las etiquetas para los gráficos circulares. De forma predeterminada, este operador se establece en verdadero.

  • startAngle - Este es un operador de tipo doble, que representa el ángulo en el que se inicia el primer segmento circular.

Para generar un gráfico circular, prepare un objeto ObservableList como se muestra en el siguiente bloque de código:

//Preparing ObservbleList object         
ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( 
   new PieChart.Data("Iphone 5S", 13), 
   new PieChart.Data("Samsung Grand", 25), 
   new PieChart.Data("MOTO G", 10), 
   new PieChart.Data("Nokia Lumia", 22));

Después de preparar el ObservableList objeto, páselo como argumento al constructor de la clase PieChart como sigue -

//Creating a Pie chart 
PieChart pieChart = new PieChart(pieChartData);

O, usando el método llamado setData() de la clase nombrada PieChart del paquete llamado javafx.scene.chart.

pieChart.setData(pieChartData);

Pasos para generar un gráfico circular

Para generar un PieChart en JavaFX, siga los pasos que se indican a continuación.

Paso 1: crear una clase

Cree una clase Java y herede la Application clase del paquete javafx.application e implementar el start() método de esta clase de la siguiente manera.

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

Paso 2: preparación del objeto ObservableList

Prepara un objeto de la interfaz ObservableList objeto pasando los datos del gráfico circular como se muestra a continuación:

ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList( 
   new PieChart.Data("Iphone 5S", 13), 
   new PieChart.Data("Samsung Grand", 25), 
   new PieChart.Data("MOTO G", 10), 
   new PieChart.Data("Nokia Lumia", 22));

Paso 3: Crear un objeto PieChart

Crear un PieChart pasando el ObservableList objeto como se muestra a continuación.

//Creating a Pie chart 
PieChart pieChart = new PieChart(pieChartData);

Paso 4: Establecer el título del gráfico circular

Establezca el título del gráfico circular con el setTitle() método de la clase PieChart. Esto pertenece al paquetejavafx.scene.chart -

//Setting the title of the Pie chart 
pieChart.setTitle("Mobile Sales");

Paso 5: Ajuste de las rebanadas en sentido horario

Coloque las porciones de los gráficos circulares en el sentido de las agujas del reloj. Esto se hace pasando un valor booleano verdadero alsetClockwise() método de la clase PieChart. Esto pertenece al paquetejavafx.scene.chart -

//setting the direction to arrange the data 
pieChart.setClockwise(true);

Paso 6: Establecer la longitud de la línea de etiqueta

Establezca la longitud de la línea de la etiqueta con el setLabelLineLength() método de la clase PieChart que pertenece al paquete javafx.scene.chart, como sigue -

//Setting the length of the label line 
pieChart.setLabelLineLength(50);

Paso 7: establezca las etiquetas visibles

Establezca las etiquetas del gráfico circular como visibles pasando el valor booleano true al método setLabelsVisible() de la clase PieChart. Esto pertenece al paquetejavafx.scene.chart -

//Setting the labels of the pie chart visible  
pieChart.setLabelsVisible(true);

Paso 8: establecer el ángulo de inicio del gráfico circular

Establezca el ángulo de inicio del gráfico circular con el setStartAngle() método de la clase PieChart. Esto pertenece al paquetejavafx.scene.chart -

//Setting the start angle of the pie chart 
pieChart.setStartAngle(180);

Paso 9: creación de un objeto de grupo

En el start()método, cree un objeto de grupo creando una instancia de la clase llamada Grupo. Esto pertenece al paquetejavafx.scene.

Pase el objeto PieChart (nodo), creado en el paso anterior, como parámetro al constructor de la clase Group. Esto debe hacerse para agregarlo al grupo de la siguiente manera:

Group root = new Group(piechart);

Paso 10: creación de un objeto de escena

Cree una escena creando una instancia de la clase llamada Scene, que pertenece al paquete javafx.scene. A esta clase, pase el objeto Grupo (root) creado en el paso anterior.

Además del objeto raíz, también puede pasar dos parámetros dobles que representan la altura y el ancho de la pantalla, junto con el objeto de la clase Grupo como se muestra a continuación.

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

Paso 11: Establecer el título del escenario

Puede establecer el título del escenario utilizando el setTitle() método del Stageclase. losprimaryStage es un objeto de escenario, que se pasa al método de inicio de la clase de escena como parámetro.

Utilizando el primaryStage objeto, establezca el título de la escena como Sample Application como sigue.

primaryStage.setTitle("Sample Application");

Paso 12: Agregar escena al escenario

Puede agregar un objeto de escena al escenario usando el método setScene() de la clase nombrada Stage. Agregue el objeto Scene preparado en los pasos anteriores utilizando este método como se muestra a continuación.

primaryStage.setScene(scene);

Paso 13: Visualización del contenido del escenario

Muestre el contenido de la escena usando el método llamado show() del Stage clase de la siguiente manera.

primaryStage.show();

Paso 14: Lanzamiento de la aplicación

Inicie la aplicación JavaFX llamando al método estático launch() del Application class del método principal de la siguiente manera.

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

Ejemplo

La siguiente tabla muestra la venta móvil con la ayuda de un gráfico circular. La siguiente tabla tiene una lista de diferentes marcas de móviles y su venta (unidades por día).

S. No Marcas móviles Ventas (Unidades por día)
1 Iphone 5s 20
2 Samsung Grand 20
3 MOTO G 40
4 Nokia Lumia 10

A continuación se muestra un programa Java que genera un gráfico circular, que muestra los datos anteriores utilizando JavaFX. Guarde este código en un archivo con el nombrePieChartExample.java.

import javafx.application.Application; 
import javafx.collections.FXCollections;  
import javafx.collections.ObservableList; 
import javafx.scene.Group; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.scene.chart.PieChart; 
         
public class PieChartExample extends Application {  
   @Override 
   public void start(Stage stage) { 
      //Preparing ObservbleList object         
      ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
         new PieChart.Data("Iphone 5S", 13), 
         new PieChart.Data("Samsung Grand", 25), 
         new PieChart.Data("MOTO G", 10), 
         new PieChart.Data("Nokia Lumia", 22)); 
       
      //Creating a Pie chart 
      PieChart pieChart = new PieChart(pieChartData); 
              
      //Setting the title of the Pie chart 
      pieChart.setTitle("Mobile Sales"); 
       
      //setting the direction to arrange the data 
      pieChart.setClockwise(true); 
       
      //Setting the length of the label line 
      pieChart.setLabelLineLength(50); 

      //Setting the labels of the pie chart visible  
      pieChart.setLabelsVisible(true); 
       
      //Setting the start angle of the pie chart  
      pieChart.setStartAngle(180);     
         
      //Creating a Group object  
      Group root = new Group(pieChart); 
         
      //Creating a scene object 
      Scene scene = new Scene(root, 600, 400);  
      
      //Setting title to the Stage 
      stage.setTitle("Pie 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); 
   } 
}

Compile y ejecute el archivo java guardado desde el símbolo del sistema utilizando los siguientes comandos.

javac PieChartExample.java 
java PieChartExample

Al ejecutarse, el programa anterior genera una ventana JavaFX que muestra un gráfico circular como se muestra a continuación.