JavaFX - Grafici

In generale, un grafico è una rappresentazione grafica dei dati. Esistono vari tipi di grafici per rappresentare dati comeBar Chart, Pie Chart, Line Chart, Scatter Chart, eccetera.

JavaFX Fornisce supporto per vari Pie Charts e XY Charts. I grafici rappresentati su un piano XY includonoAreaChart, BarChart, BubbleChart, LineChart, ScatterChart, StackedAreaChart, StackedBarChart, eccetera.

Ogni grafico è rappresentato da una classe e tutti questi grafici appartengono al pacchetto javafx.scene.chart. La classe denominataChart è la classe base di tutti i grafici in JavaFX e in XYChart è la classe base di tutti quei grafici disegnati sul piano XY.

Creazione di un grafico

Per creare un grafico, devi:

  • Definisci l'asse del grafico
  • Istanziare la rispettiva classe
  • Prepara e passa i dati al grafico

Istanziare la rispettiva classe

Per creare un grafico, istanziare la rispettiva classe. Ad esempio, se desideri creare un grafico a linee, devi creare un'istanza della classe denominataLine come segue -

LineChart linechart = new LineChart(xAxis, yAxis);

Come osservato nel codice sopra, durante l'istanza, è necessario passare due oggetti che rappresentano rispettivamente l'asse X e Y del grafico.

Definizione dell'asse

In generale, l'asse dei grafici può essere rappresentato da:

  • Numeri come Popolazione, Età e
  • Categorie come Giorni in una settimana, Paesi.

In JavaFX, un asse è una classe astratta che rappresenta l'asse X o Y. Ha due sottoclassi per definire ogni tipo di asse, vale a direCategoryAxis e NumberAxis come mostrato nel diagramma seguente -

Category Axis- Istanziando questa classe, è possibile definire (creare) un asse X o Y lungo il quale ogni valore rappresenta una categoria. È possibile definire un asse di categoria istanziando questa classe come mostrato di seguito:

CategoryAxis xAxis = new CategoryAxis();

Per questo asse, è necessario impostare l'elenco delle categorie e l'etichetta sull'asse come mostrato di seguito:

//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- Istanziando questa classe, è possibile definire (creare) un asse X o Y lungo il quale ogni valore rappresenta un valore numerico. Puoi usare qualsiasi tipo di numero con questoAxis, Long, Double, BigDecimal, ecc. Puoi definire un asse numerico istanziando questa classe come segue:

//Defining the axis 
NumberAxis yAxis = new NumberAxis();  

//Setting labelto the axis 
yAxis.setLabel("name of the axis");

Passaggio di dati ai grafici XY

Tutti i grafici XY sono rappresentati lungo il piano XY. Per tracciare un insieme di punti in un grafico, dobbiamo specificare una serie di coordinate XY.

Il <X,Y> classe di javafx.scene.chartpacchetto è una classe che utilizza la quale è possibile inviare dati a un grafico. Questa classe contiene un elenco osservabile di serie denominate. Puoi ottenere questo elenco utilizzando ilgetData() metodo di XYChart.Series classe come mostrato di seguito -

ObservableList list = series.getData();

Dove, series è l'oggetto del XYChart.Seriesclasse. È possibile aggiungere dati a questo elenco utilizzando iladd() metodo come segue -

list.add(new XYChart.Data(x-axis data, y-axis data));

Queste due righe possono essere scritte insieme come mostrato di seguito:

series.getData().add(new XYChart.Data(x-axis data, y-axis data));

La tabella seguente fornisce una descrizione di vari grafici (classi) forniti da JavaFX -

S.No Grafico e descrizione
1 Grafico a torta

Un grafico a torta è una rappresentazione di valori come fette di un cerchio con colori diversi. Queste sezioni sono etichettate e i valori corrispondenti a ciascuna sezione sono rappresentati nel grafico.

In JavaFX, un grafico a torta è rappresentato da una classe denominata PieChart. Questa classe appartiene al pacchettojavafx.scene.chart.

2 Grafico a linee

Un grafico a linee o un grafico a linee visualizza le informazioni come una serie di punti dati (indicatori) collegati da segmenti di linea retta. Il grafico a linee mostra come i dati cambiano alla stessa frequenza temporale.

In JavaFX, un grafico a linee è rappresentato da una classe denominata LineChart. Questa classe appartiene al pacchettojavafx.scene.chart. Istanziando questa classe, è possibile creare un nodo LineChart in JavaFX.

3 Grafico ad area

I grafici ad area vengono utilizzati per disegnare grafici basati su area. Traccia l'area tra la serie di punti data e l'asse. In generale, questo grafico viene utilizzato per confrontare due quantità.

In JavaFX, un grafico ad area è rappresentato da una classe denominata AreaChart. Questa classe appartiene al pacchettojavafx.scene.chart. Istanziando questa classe, è possibile creare un nodo AreaChart in JavaFX.

4 Grafico a barre

Un grafico a barre viene utilizzato per rappresentare i dati raggruppati utilizzando barre rettangolari. La lunghezza di queste barre rappresenta i valori. Le barre nel grafico a barre possono essere tracciate verticalmente o orizzontalmente.

In JavaFX, un grafico a barre è rappresentato da una classe denominata BarChart. Questa classe appartiene al pacchettojavafx.scene.chart. Istanziando questa classe, è possibile creare un nodo BarChart in JavaFX.

5 Grafico a bolle

Un grafico a bolle viene utilizzato per posizionare i dati tridimensionali. La terza dimensione sarà rappresentata dalla dimensione (raggio) della bolla.

In JavaFX, un grafico a bolle è rappresentato da una classe denominata BubbleChart. Questa classe appartiene al pacchettojavafx.scene.chart. Istanziando questa classe, puoi creare un nodo BubbleChart in JavaFX.

6 Grafico a dispersione

Un grafico a dispersione è un tipo di grafico che utilizza i valori di due variabili tracciate su un piano cartesiano. Di solito viene utilizzato per scoprire la relazione tra due variabili.

In JavaFX, un grafico a dispersione è rappresentato da una classe denominata ScatterChart. Questa classe appartiene al pacchettojavafx.scene.chart. Istanziando questa classe, è possibile creare un nodo ScatterChart in JavaFX.

7 Grafico ad area in pila

In JavaFX, un grafico ad area in pila è rappresentato da una classe denominata StackedAreaChart.

Questa classe appartiene al pacchetto javafx.scene.chart. Istanziando questa classe, è possibile creare un nodo StackedAreaChart in JavaFX.

8 Grafico a barre in pila

In JavaFX, un grafico a barre in pila è rappresentato da una classe denominata StackedBarChart.

Questa classe appartiene al pacchetto javafx.scene.chart. Istanziando questa classe, è possibile creare un nodo StackedBarChart in JavaFX.