Configuração de Gráficos de Barras e Eixos no ECharts

Ao trabalhar com ECharts em projetos React, a inicialização do gráfico pode variar ligeiramente dependendo do ambiente. Em um projeto React padrão, a importação é feita da segiunte forma:

import echarts from 'echarts';

let myChart = null;
myChart = echarts.init(document.getElementById('chartContainer'));

Em amibentes mais restritos, como microsserviços do Ice, uma abordagem alternativa pode ser necessária:

import * as echarts from 'echarts';

let myChart: any = null;
const chartDom = document.getElementById('chartContainer') as HTMLDivElement;
myChart = echarts.init(chartDom);

Configurações Comuns para Gráficos de Barras A configuração de um gráfico de barras envolve a definição dos dados, opções de tooltip, layout do grid, e a formatação dos eixos X e Y.

// Dados de exemplo para os eixos
const xAxisCategories = ['09/21', '09/22', '09/23', '09/24', '09/25'];
const barValues = [88, 45, 67, 12, 85];

const chartOptions = {
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'shadow' // Tipo de ponteiro do eixo: 'line' (linha) ou 'shadow' (sombra)
    },
    // Formato da dica: Exibe o nome do eixo, o nome da série e o valor com '%'
    formatter: '{b} - {a}: {c}%',
  },
  grid: {
    top: '30px',       // Espaçamento superior da área do gráfico
    bottom: '20px',    // Espaçamento inferior
    left: '20px',      // Espaçamento esquerdo
    right: '20px',     // Espaçamento direito
    containLabel: true // Garante que os rótulos dos eixos estejam dentro da área do grid
  },
  xAxis: {
    type: 'category',  // Tipo de eixo categórico para rótulos de texto
    data: xAxisCategories, // Dados para o eixo X
    axisLine: { show: false },   // Oculta a linha do eixo X
    axisTick: { show: false },   // Oculta os marcadores de tick do eixo X
    splitLine: { show: false },  // Oculta as linhas de grade verticais
    axisLabel: { color: '#666666' } // Cor dos rótulos do eixo X
  },
  yAxis: {
    type: 'value',     // Tipo de eixo de valor numérico
    min: 0,            // Valor mínimo do eixo Y
    max: 100,          // Valor máximo do eixo Y
    axisLabel: {
      formatter: '{value}%', // Formata os rótulos do eixo Y para exibir como porcentagem
      color: '#666666'
    },
    axisLine: { show: true, lineStyle: { color: '#eeeeee' } }, // Exibe e estiliza a linha do eixo Y
    splitLine: { show: true, lineStyle: { color: '#eeeeee' } }, // Exibe e estiliza as linhas de grade horizontais
    axisTick: { show: false } // Oculta os marcadores de tick do eixo Y
  },
  series: [
    {
      name: 'Taxa de Ocupação', // Nome da série
      type: 'bar',              // Tipo de série: gráfico de barras
      barWidth: '32%',          // Largura das barras
      label: {
        show: false,            // Oculta os rótulos de dados nas barras
        position: 'top',        // Posição do rótulo (se show for true)
        fontSize: 10,
        formatter: function(params) { // Função para formatar o rótulo
          return params.value;
        }
      },
      // Aplica um gradiente de cor às barras
      color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
        { offset: 1, color: '#00C15E' }, // Cor inferior
        { offset: 0.5, color: '#187BDB' }, // Cor intermediária
        { offset: 0, color: '#3C9CF9' }  // Cor superior
      ]),
      data: barValues // Dados para a série
    }
  ]
};

// Aplica as opções ao gráfico
if (myChart) {
  myChart.setOption(chartOptions);
}

Custmoização de Cores em Barras Individuais Para colorir barras específicas de forma diferente, os dados da série devem ser um array de objetos, onde cada objeto pode conter um value e um itemStyle para personalização:

// Exemplo de dados com estilos individuais
const customData = [
  { value: 85, itemStyle: { color: '#0078FF' } }, // Barra 1 com cor azul
  { value: 80, itemStyle: { color: '#0078FF' } }, // Barra 2 com cor azul
  { value: 77, itemStyle: { color: '#0078FF' } }, // Barra 3 com cor azul
  66, // Barras subsequentes usam a cor padrão da série
  55,
  44,
];

// O restante da configuração da série seria similar, mas utilizando customData
// ...
// series: [{ name: 'Exemplo', type: 'bar', data: customData, ... }]
// ...

Adicionando Gráficos Pictóricos (Pictorial Bar) Gráficos pictóricos podem ser usados para criar efeitos visuais interessantes, como barras que se assemelham a ícones.

const pictorialChartOptions = {
  // ... outras configurações como grid, xAxis, yAxis ...
  series: {
    type: 'pictorialBar', // Tipo de série: gráfico pictórico
    barCategoryGap: '-10%', // Ajusta o espaçamento entre barras para sobreposição
    // Define o símbolo a ser usado para preencher a barra (neste caso, uma forma customizada)
    symbol: 'path://M0,10 L10,10 C5.5,10 5.5,5 5,0 C4.5,5 4.5,10 0,10 z',
    color: '#0078FF',     // Cor padrão do símbolo
    label: {
      show: true,         // Exibe os rótulos de dados
      position: 'top',    // Posição dos rótulos
    },
    data: [/* Seus dados aqui */], // Dados para o gráfico pictórico
  },
};

A configuração detalhada de cada item do ECharts oferece grande flexibilidade para a criação de visualizações de dados personalizadas.

Tags: echarts javascript React grafico de barras Visualização de Dados

Publicado em 6-17 21:06