Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
franco_galati
Partner - Contributor II
Partner - Contributor II

Setas de Comparação com Período Anterior

Introdução

Arrow Comparing Last Year 1.png

Reunir inúmeras informações em um espaço confinado é um desafio constante para os profissionais que elaboram complexos painéis de tomada de decisão. No gráfico ao lado é possível visualizar uma rica combinação de dados transformados em indicadores de rápida e fácil interpretação. Trata-se de um exemplo de movimentação portuária de cargas ao longo de portos brasileiros em um ano específico. Ordenados do maior para o menor, cada barra apresenta o total de mercadorias movimentadas em toneladas, representado pelo número interno dentro de cada barra. Adicionalmente, cada extremidade contém um rótulo adicional com um valor em percentual e uma seta para cima ou para baixo, demonstrando a variação de crescimento ou redução em relação ao ano anterior.As cores das setas auxiliam o usuário a compreender se houve aumento ou redução em relação ao penúltimo período. Para completar, no início de cada barra um valor em percentual trata da representatividade daquele terminal em relação aos demais. Ou seja, apresenta a distribuição em porcentagem da participação daquele porto na movimentação total.

Este artigo trata da criação de um gráfico semelhante ao exibido nesta seção para representar em uma única visão 4 elementos decisórios, incluindo o valor absoluto do ano atual, a variação em relação ao ano anterior, a direção da variação (setas) e a distribuição em relação ao todo (participação total).

Criação do Gráfico de Barras

Para iniciar a criação do gráfico do exemplo acima é necessário carregar um fragmento de dados que será utilizado para simular uma situação real. O script a seguir deve ser carregado antes da criação do objeto. A carga dos dados representa um terminal portuário, seu respectivo total de movimentação em toneladas para um determinado ano, variando de 2012 a 2014.

Movimentacao_Mercadorias:

LOAD * INLINE [

TERMINAL_PORTUARIO, MOVIMENTAÇÃO, ANO

TERMINAL MARÍTIMO DE PONTA DA MADEIRA, 112526506, 2014

TERMINAL DE TUBARÃO, 109808864, 2014

SANTOS, 94042814, 2014

ITAGUAÍ (SEPETIBA), 63849720, 2014

ALMIRANTE BARROSO, 53110690, 2014

PARANAGUÁ, 41603425, 2014

TERMINAL DA ILHA GUAÍBA, 40535106, 2014

ALMIRANTE MAXIMIANO DA FONSECA, 35058452, 2014

PONTA DE UBU, 25917564, 2014

TERMINAL DE TUBARÃO, 110480049, 2013

TERMINAL MARÍTIMO DE PONTA DA MADEIRA, 107328307, 2013

SANTOS, 99074788, 2013

ITAGUAÍ (SEPETIBA), 58327912, 2013

ALMIRANTE BARROSO, 52807620, 2013

PARANAGUÁ, 41771840, 2013

TERMINAL DA ILHA GUAÍBA, 39758214, 2013

ALMIRANTE MAXIMIANO DA FONSECA, 25797055, 2013

PONTA DE UBU, 22683156, 2013

TERMINAL DE TUBARÃO, 110334522, 2012

TERMINAL MARÍTIMO DE PONTA DA MADEIRA, 105033621, 2012

SANTOS, 90737329, 2012

ITAGUAÍ (SEPETIBA), 57081604, 2012

ALMIRANTE BARROSO, 50541216, 2012

PARANAGUÁ, 40441812, 2012

TERMINAL DA ILHA GUAÍBA, 39818902, 2012

ALMIRANTE MAXIMIANO DA FONSECA, 37041162, 2012

PONTA DE UBU, 23512589, 2012];

Como primeira ação para geração do gráfico, os dados apresentados devem refletir sempre o maior ano do histórico carregado ou o maior ano a partir da seleção do período pelo usuário. Para isso, uma operação de Set Analysis orientará a expressão para calcular seus valores apenas sobre o maior ano existente ou maior ano dentro da seleção. O gráfico pode ser iniciado como em qualquer outra operação através do atalho Novo Objeto de Pasta com um clique com o botão da direita na área vazia de uma pasta. Como observado, trata-se de um gráfico de barras, o padrão selecionado pela janela Geral do assistente de criação de gráficos. As características do gráfico de combinado (barras + linhas) para esta visão são:

  ATENÇÃO! Esta seção descreve o uso do Gráfico Combinado e não o Gráfico de Barras. 
  • Na guia Geral selecione o gráfico combinado.
  • Na mesma guia, desmarque a opção Mostrar Título no Gráfico.
  • Ao avançar para as Dimensões, adicione o campo TERMINAL_PORTUÁRIO como dimensão do gráfico.
  • Ainda na guia Dimensões, desmarque a opção Rótulo e avance para as expressões.
  • Na guia Expressões, inclua a fórmula =Sum({$<ANO={'$(=MAX(ANO))'}>} MOVIMENTAÇÃO).

Style Chart Properties 1.png

  • Para a expressão recém inserida, altere o Rótulo para Total Movimentado.
  • Avance para a guia Classificar e assinale a opção Valor Numérico Ascendente para o campo TERMINAL_PORTUARIO.
  • Na mesma guia Classificar, certifique-se de desmarcar a opção Texto para o mesmo campo.
  • Avance até a guia Estilo e altere a Orientação para Horizontal, conforme figura ao lado.

O resultado parcial das configurações realizadas até este momento podem ser conferidas no gráfico abaixo. As próximas configurações deverão incluir o valor absoluto da movimentação dentro de cada barra e outros aspectos visuais considerados adequados para um melhor acabamento. Retornando as propriedades do gráfico proceda com os seguintes ajustes:Bar Chart 1.PNG

  • Na guia Eixos assinale a opção Ocultar Eixo.
  • Na guia Apresentação, marque a opção Valores de Desenho Dentro de Segmentos.
  • De volta a guia Expressões, marque o check-box do item Valores Sobre os Dados.
  • Na guia Número formate o valor da expressão como Inteiro.
  • Na guia Cores assinale a opção Manter Cores e configure a primeira cor da paleta para o RGB(106, 132, 191).
  • Na guia Título desmarque o check-box Mostrar Título.
  • Na guia Layout reduza a borda do gráfico para 0 (zero) na opção Largura da Borda.
  • Certifique-se de que na guia Geral a opção Mostrar Título no Gráfico está desmarcada.

Em linhas gerais, com as propriedades acima configuradas o gráfico assumirá um design mais semelhante ao apresentado na seção anterior. O momento é oportuno para calcular a distribuição percentual de cada barra em relação a cada porto. Ou seja, qual o percentual que cada porto transportou no ano corrente (ou maior ano selecionado). De volta as propriedades do gráfico, duplique a expressão atual.

  • Na guia Expressões, copie e cole a expressão atual denominada Total Movimentado.
  • Altere o Rótulo da nova expressão para % de Participação.
  • Com a recém inserida expressão selecionada, desmarque o check-box Barra.
  • Altere a fórmula da expressão para calcular a distribuição percentual, tal como no exemplo a seguir.
  • Inclua a palavra TOTAL no divisor da expressão para que a soma dos valores despreze a dimensão.
  • Certifique-se de formatar o resultado utilizando a função Num e não a guia Número.

=Num(Sum({$<ANO={'$(=MAX(ANO))'}>} MOVIMENTAÇÃO) / Sum({$<ANO={'$(=MAX(ANO))'}>} TOTAL MOVIMENTAÇÃO), '#,#0%') 

Com uma nova expressão incluída o QlikView assume a necessidade de inclusão da legenda, o que não se faz necessário. Por isso, na guia Apresentação desmarque a opção Mostrar Legenda.

Inclusão das Setas de Variação

Com o gráfico da seção anterior preparado, é possível incluir uma nova expressão responsável por calcular a variação em relação ao ano anterior. Esta variação se dá dividindo o valor do ano atual pelo ano imediatamente anterior em percentual. A função Num será utilizada para incluir as setas direcionais para cima ou para baixo, de acordo com o resultado positivo ou negativo da expressão. De volta as propriedades do gráfico acesse a guia Expressões e inclua uma nova fórmula conforme definição abaixo.

=Dual(Num((Sum({$<ANO={'$(=MAX(ANO))'}>} MOVIMENTAÇÃO) - Sum({$<ANO={'$(=MAX(ANO)-1)'}>} MOVIMENTAÇÃO)) /

   Sum({$<ANO={'$(=MAX(ANO)-1)'}>} MOVIMENTAÇÃO), '▲ #.##0,00%; ▼ -#.##0,00%'), [Total Movimentado])

Embora a fórmula parece complexa, trata-se apenas da derivação matemática de variação em relação ao período anterior calculado como período atual menos período anterior dividido pelo período anterior (resumo abaixo). O que torna a nova expressão especial é a utilização da formatação da função Num que inclui as setas para cima ou para baixo de acordo com o resultado obtido. Embora geralmente Num seja utilizado com um único padrão de formatação há um parâmetro para valores positivos e outro para negativos. Logo, a fórmula abaixo é aplicada à função Num com o conceito abaixo descrito.

Fórmula: (PERÍODO_ATUAL - PERÍODO_ANTERIOR) / PERÍODO_ANTERIOR 
Num((PERÍODO_ATUAL - PERÍODO_ANTERIOR) / PERÍODO_ANTERIOR), formato_positivo, formato_negativo) 

A inclusão da fórmula na expressão de nada adiana se a posição das setas resultantes da função Num não estiverem posicionadas no lugar correto. Ou seja, no final da barra. Para que isso seja possível é utilizada a função Dual com objetivo de apresentar um valor e calcular outro. Dual possui dois parâmetros utilizados neste exemplo, sendo o primeiro aquilo que se deseja exibir e o segundo o cálculo efetivamente realizado. Logo, Dual é utilizado teoricamente assim:

Dual(VALOR_APRESENTADO, CALCULO_REALIZADO) 

O cálculo de Dual resultará em uma barra igual a calculada anteriormente, uma vez que a expressão anterior chamada [Total Movimentado] é utilizada como base de cálculo da expressão. Daremos a essa expressão o rótulo de Variação. Portanto, as configurações da janela de propriedades do gráfico na guia Expressões estarão semelhantes a seguinte:

Arrow Comparing Last Year 2.png

Realize os seguintes ajustes complementares na guia Expressões:

  • Esteja certo de estar utilizando um gráfico do tipo Combinado.
  • Na expressão recém inserida, marque a apresentação do tipo Linha.
  • Na mesma expressão, assinale a opção Invisível.
  • Promova a expressão para a segunda posição, logo abaixo de Total Movimentado.
  • Assinale a opção Valores sobre os Dados.

Adicionalmente, confira os seguintes parâmetros na guia Número:

  • Para a expressão Total Movimentado o formato que desejar.
  • Já para as expressões Variação e % de Participação, necessariamente o Padrão da Expressão.

Para um melhor acabamento, na guia Eixo verifique que:

  • A opção Ocultar Eixo foi assinalada para todas as expressões.
  • A configuração de Forçar 0 foi marcadas para todas as expressões.

Lembre-se, legendas não são necessárias, portanto na guia Apresentação:

  • Certifique-se de ter desmarcado a opção Mostrar Legenda.
  • Reduza a Distância de Separação entre as barras para 2 ou 3.
  • A opção Valores de Desenho Dentro de Segmentos deve estar marcada.

Note que as setas foram incluídas meramente pelo uso da função Num que já incluiu o triângulo para cima ou para baixo no formato do número positivo e negativo, respectivamente. Já a posição desta formatação no final da barra é possível pelo uso da função Dual que calcula um valor mas apresenta outro. O valor calculado na realidade é o mesmo da expressão original das barras, porém serve apenas para posicionar a apresentação de Num na extremidade.

Agora alguns ajustes visuais complementares auxiliam na visualização mais apurada das setas, adicionando a elas cores. Para redução, vermelho e, para acréscimo, verde. Estas configurações são realizadas na propriedade da expressão

Arrow Comparing Last Year 3.png

O que define a cor da seta para cima ou para baixo é a configuração presente nas propriedades da expressão Variação, conforme desenho ao lado. A esta expressão é incluída uma fórmula que calcula a variação entre os dois períodos e avalia se o resultado é positivo (maior que zero) ou negativo (igual ou menor do que zero). Em seguida a função RGB assume as cores estabelecidas como resultado desta avaliação condicionada pela função IF.

Se precisar entender um pouco mais o funcionamento da função RGB, veja o artigo sobre como destacar barras em um gráfico, onde há uma seção apenas sobre a configuração de variáveis para uso de uma paleta de cores. Caso precise de informações básicas sobre o uso da função IF, veja o artigo sobre troca de legendasonde há explicações básicas.

Para completar a configuração de cores das setas é preciso incluir na propriedade Cor de Fundo a fórmula abaixo. A função IF avaliará se o resultado da expressão é maior do que zero. Ou seja, o ano atual é maior do que o ano anterior em percentual? Se confirmado, o segundo parâmetro do IF aplicará uma cor definida pela combinação RGB (Red, Green, Blue). Caso contário, o último parâmetro do IF é acionado aplicando a cor vermelha.

=IF((Sum({$<ANO={'$(=MAX(ANO))'}>} MOVIMENTAÇÃO) - Sum({$<ANO={'$(=MAX(ANO)-1)'}>} MOVIMENTAÇÃO)) /

  Sum({$<ANO={'$(=MAX(ANO)-1)'}>} MOVIMENTAÇÃO) > 0, RGB(0, 128, 0), RGB(200, 10, 15))

Check-List Se Não Funcionar

1. Configurei todos os parâmetros mas as setas não aparecem.

Certifique-se de que as expressões foram definidas na ordem certa. Ou seja, primeiro a barra, segundo a variação e terceiro a distribuição percentual.

2. As setas aparecem mas estão debaixo das barras e não na extremidade.

Configure o gráfico para o tipo Gráfico Combinado e não Gráfico de Barras. Ajuste a segunda expressão para linhas.

3. Meu gráfico funciona mas aparece uma linha ao lado das setas.

Na expressão de variação (segunda expressão), certifique-se de marcar a opção Invisível.

4. Tudo parece no lugar mas as setas não são exibidas no final da barra.

Assegure-se de que a expressão de variação (segunda expressão) possui a opção Valores Sobre os Dados marcada.

5. Configurei todos os parâmetros mas o gráfico repete o valor da barra no final ao invés de exibir as setas.

A terceira expressão não deve usar o recurso Relativo. Ao invés, calcule o percentual de distribuição e desmarque esta opção na terceira expressão.

6. Todos os itens anteriores foram verificados e mesmo assim as setas não aparecem. São exibidos os valores das barras ao invés dos triângulos para cima e para baixo.

Na guia Número assegure-se que somente o Total Movimentado está formatado. As duas outras expressões devem estar no Padrão da Expressão.

7. Tudo parece no lugar mas as setas estão sempre da mesma cor.

Configure as cores na propriedade Cor de Fundo da segunda expressão (Variação) através de um IF.

Resumo dos Passos Deste Artigo

  1. Inclua um gráfico do tipo Combinado e adicione a dimensão desejada.
  2. Adicione a expressão para o cálculo das barras. Configure para que o valor seja apresentado dentro do segmento.
  3. Adicione uma segunda expressão usando DUAL e NUM para comparar os períodos via SETANALYSIS.
  4. Para a segunda expressão, utilize a representação Linhas e assinale a opção Invisível.
  5. Adicione a terceira expressão usando TOTAL para calcular a distribuição. Esta expressão não deve ter representação gráfica.

Mais Artigos como Esse?

www.qknow.com.br

Labels (3)
1 Reply
kkmoraes
Contributor III
Contributor III

Excelente artigo, obrigado!