JavaFX - Gráficos
Em geral, um gráfico é uma representação gráfica dos dados. Existem vários tipos de gráficos para representar dados, comoBar Chart, Pie Chart, Line Chart, Scatter Chart, etc.
JavaFX fornece suporte para vários Pie Charts e XY Charts. Os gráficos que são representados em um plano XY incluemAreaChart, BarChart, BubbleChart, LineChart, ScatterChart, StackedAreaChart, StackedBarChart, etc.
Cada gráfico é representado por uma classe e todos esses gráficos pertencem ao pacote javafx.scene.chart. A classe chamadaChart é a classe base de todos os gráficos em JavaFX e o XYChart é a classe base de todos os gráficos desenhados no plano XY.
Criando um gráfico
Para criar um gráfico, você precisa -
- Defina o eixo do gráfico
- Instancie a respectiva classe
- Prepare e passe os dados para o gráfico
Instanciando a respectiva classe
Para criar um gráfico, instancie sua respectiva classe. Por exemplo, se você deseja criar um gráfico de linha, você precisa instanciar a classe chamadaLine como segue -
LineChart linechart = new LineChart(xAxis, yAxis);
Conforme observado no código acima, durante a instanciação, você precisa passar dois objetos que representam os eixos X e Y do gráfico, respectivamente.
Definindo o Eixo
Em geral, o eixo dos gráficos pode ser representado por -
- Números como População, Idade e
- Categorias como dias da semana, países.
No JavaFX, um eixo é uma classe abstrata que representa o eixo X ou Y. Possui duas subclasses para definir cada tipo de eixo, a saberCategoryAxis e NumberAxis conforme mostrado no diagrama a seguir -
Category Axis- Ao instanciar esta classe, você pode definir (criar) um eixo X ou Y ao longo do qual cada valor representa uma categoria. Você pode definir um eixo de categoria instanciando esta classe conforme mostrado abaixo -
CategoryAxis xAxis = new CategoryAxis();
Para este eixo, você precisa definir a lista de categorias e rótulo para o eixo como mostrado abaixo -
//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- Ao instanciar esta classe, você pode definir (criar) um eixo X ou Y ao longo do qual cada valor representa um valor Numérico. Você pode usar qualquer tipo de número com esteAxis, Long, Double, BigDecimal, etc. Você pode definir um eixo numérico instanciando esta classe da seguinte maneira -
//Defining the axis
NumberAxis yAxis = new NumberAxis();
//Setting labelto the axis
yAxis.setLabel("name of the axis");
Passando dados para gráficos XY
Todos os gráficos XY são representados ao longo do plano XY. Para plotar um conjunto de pontos em um gráfico, precisamos especificar uma série de coordenadas XY.
o <X,Y> classe do javafx.scene.chartpackage é uma classe com a qual você pode enviar dados para um gráfico. Esta classe contém uma lista observável de séries nomeadas. Você pode obter essa lista usando ogetData() método de XYChart.Series classe como mostrado abaixo -
ObservableList list = series.getData();
Onde, series é o objeto do XYChart.Seriesclasse. Você pode adicionar dados a esta lista usando oadd() método da seguinte forma -
list.add(new XYChart.Data(x-axis data, y-axis data));
Essas duas linhas podem ser escritas juntas conforme mostrado abaixo -
series.getData().add(new XYChart.Data(x-axis data, y-axis data));
A tabela a seguir fornece uma descrição de vários gráficos (classes) fornecidos pelo JavaFX -
S.Não | Gráfico e descrição |
---|---|
1 | Gráfico de pizza Um gráfico de pizza é uma representação de valores como fatias de um círculo com cores diferentes. Essas fatias são rotuladas e os valores correspondentes a cada fatia são representados no gráfico. No JavaFX, um gráfico de pizza é representado por uma classe chamada PieChart. Esta classe pertence ao pacotejavafx.scene.chart. |
2 | Gráfico de linha Um gráfico de linha ou gráfico de linha exibe informações como uma série de pontos de dados (marcadores) conectados por segmentos de linha reta. Gráfico de linhas mostra como os dados mudam com frequência de tempo igual. No JavaFX, um gráfico de linha é representado por uma classe chamada LineChart. Esta classe pertence ao pacotejavafx.scene.chart. Ao instanciar essa classe, você pode criar um nó LineChart no JavaFX. |
3 | Gráfico de Área Os gráficos de área são usados para desenhar gráficos baseados em área. Ele plota a área entre a série de pontos fornecida e o eixo. Em geral, este gráfico é usado para comparar duas quantidades. No JavaFX, um gráfico de área é representado por uma classe chamada AreaChart. Esta classe pertence ao pacotejavafx.scene.chart. Ao instanciar essa classe, você pode criar um nó AreaChart no JavaFX. |
4 | Gráfico de barras Um gráfico de barras é usado para representar dados agrupados usando barras retangulares. O comprimento dessas barras representa os valores. As barras no gráfico de barras podem ser plotadas vertical ou horizontalmente. No JavaFX, um gráfico de barras é representado por uma classe chamada BarChart. Esta classe pertence ao pacotejavafx.scene.chart. Ao instanciar essa classe, você pode criar um nó BarChart no JavaFX. |
5 | Gráfico de Bolhas Um gráfico de bolhas é usado para visualizar dados tridimensionais. A terceira dimensão será representada pelo tamanho (raio) da bolha. No JavaFX, um gráfico de bolha é representado por uma classe chamada BubbleChart. Esta classe pertence ao pacotejavafx.scene.chart. Ao instanciar essa classe, você pode criar um nó BubbleChart no JavaFX. |
6 | Gráfico de dispersão Um gráfico de dispersão é um tipo de gráfico que usa valores de duas variáveis traçadas em um plano cartesiano. Geralmente é usado para descobrir a relação entre duas variáveis. No JavaFX, um gráfico Scatter é representado por uma classe chamada ScatterChart. Esta classe pertence ao pacotejavafx.scene.chart. Ao instanciar essa classe, você pode criar um nó ScatterChart no JavaFX. |
7 | Gráfico de área empilhada No JavaFX, um gráfico de área empilhada é representado por uma classe chamada StackedAreaChart. Esta classe pertence ao pacote javafx.scene.chart. Ao instanciar essa classe, você pode criar um nó StackedAreaChart no JavaFX. |
8 | Gráfico de Barras Empilhadas No JavaFX, um gráfico de barras empilhadas é representado por uma classe chamada StackedBarChart. Esta classe pertence ao pacote javafx.scene.chart. Ao instanciar essa classe, você pode criar um nó StackedBarChart no JavaFX. |