Criando gráficos com Chart.js
Os gráficos de linhas e barras são gráficos muito utilizados no mundo empresarial. O gráfico de linha é usado para mostrar tendências, comparar conjuntos de dados, mostrar evoluções e diminuições de algum fenômeno. Apresenta a variação de valores dos dados em determinado período.
Se você ainda não viu o artigo Iniciando com Chart.js, acesse-o no link:https://www.mundojs.com.br/iniciando-com-chart-js/
LINHA:
O gráfico de linhas é uma maneira de mostrar os pontos de dados em uma linha. O gráfico em linha permite que um número de propriedades seja especificado para cada um dos conjuntos de dados.
Ao criar o seu documento HTML base, você deverá adicionar um Canvas na sua página.
<!-- adicione a tag canvas no seu HTML -->
<canvas id="myChart"></canvas>
Com o Canvas adicionado, você precisará incluir a biblioteca Chart.js na sua página.
<!-- o link a seguir direciona para a biblioteca online do Chart.js -->
<!-- a biblioteca também está disponível para download no site do Chart.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.8.0/Chart.bundle.js"></script>
Para criar um gráfico do tipo Linha, você usará o seguinte código:
// criando um novo objeto, contendo o tipo, os dados
// e as opções que o gráfico terá.
let ctx = document.getElementById('myChart');
let chart = new Chart(ctx, {
type: 'line',
data: data,
options: options
});
Onde:
Type:
É o tipo de gráfico que será feito;
Data:
Os dados que serão inseridos no gráfico.
Options:
As customizações que você fará no seu gráfico.
TYPE:
Este valor define de qual tipo será o gráfico. Você deve utilizar ‘line’ para o formato LINHA.
// type:'line'
DATA:
Para a construção do gráfico, é necessário que os datasets contenham os valores a ser inseridos no gráfico. Para isto, cria-se um vetor com os valores necessários.
Você também poderá inserir uma legenda (label) para a linha do gráfico.
// O objeto data possui os valores dispostos no gráfico
data: {
// Legendas das Linhas
labels: ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho'],
datasets: [{
// Legenda
label: 'Meu primeiro gráfico',
// Define-se a cor da linha.
borderColor: 'rgb(245,222,179)',
// Dados a serem inseridos nas barras
data: [0, 10, 5, 2, 20, 12, 1],
}]
}
OPTIONS:
Esse objeto define as opções a serem inseridas no seu gráfico. Confira as diversas customizações disponíveis para o seu tipo de gráfico em: https://www.chartjs.org/docs/latest/charts/line.html.
O exemplo a seguir utilizará a opção tension, que define se as linhas serão retas ou possuirão algum tipo de curvatura.
// Esta opção define se as linhas serão curvadas ou retas,
// use 0 para retas.
options: {
elements: {
line: {
tension: 0
}
}
}
BARRAS:
O gráfico de barras mostra os valores dos dados com barras verticais. É muito utilizado para mostrar dados de tendências e comparação de vários conjuntos de dados. Cada barra retangular é correspondente a uma categoria e proporcional ao valor do dado na respectiva categoria.
De maneira semelhante à criação do gráfico em linhas, utilizaremos a mesma estrutura HTML para o gráfico de barras.
Para criar um gráfico do tipo Barra, você usará o seguinte código:
// criando um novo objeto, contendo o tipo, os dados
// e as opções que o gráfico terá.
let ctx = document.getElementById('myChart');
let myBarChart = new Chart(ctx, {
type: 'bar',
data: data,
options: options
});
TYPE:
Este valor define de qual tipo será o gráfico. Você deve utilizar ‘bar’ para o formato BARRA VERTICAL e ‘horizontalBar’ para o formato BARRA HORIZONTAL.
// type: 'bar'
// type: 'horizontalBar'
DATA:
Assim como no gráfico em Linhas, é necessário que os datasets contenham um vetor com os valores a ser inseridos no gráfico. Você deve especificar também as cores de cada retângulo, sendo uma cor para cada valor no vetor. Também pode inserir legendas. Confira mais opções em: https://www.chartjs.org/docs/latest/charts/bar.html
// O objeto data possui os valores dispostos no gráfico
data: {
// Legendas das Barras
labels: ['Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'],
datasets: [{
// Legenda geral
label: '$ em Vendas',
// Dados a serem inseridos nas barras
data: [10, 9, 12, 19, 21, 7],
// Define as cores de preenchimento das barras
// de acordo com sua posição no vetor
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
// Define as cores de preenchimento das bordas das barras
// de acordo com sua posição no vetor
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
// Define a espessura da borda dos retângulos
borderWidth: 1
}]
},
OPTIONS:
Esse objeto define as opções a serem inseridas no seu gráfico. Você também pode conferir as diversas opções de customização na documentação do Chart.js.
Neste exemplo será utilizada a opção beginAtZero, que tem a função de começar a barra no valor 0 do eixo X.
// Customização que define onde irá começar a ser erguida a barra
// começando pelo ZERO, no eixo X.
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
}