
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Setas de Comparação com Período Anterior
Introdução
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)
.
- Para a expressão recém inserida, altere o
Rótulo
paraTotal Movimentado
. - Avance para a guia Classificar e assinale a opção
Valor Numérico Ascendente
para o campoTERMINAL_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
paraHorizontal
, 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:
- 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 oRGB(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 guiaNú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:
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 oPadrã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
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ãoGrá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 oTotal Movimentado
está formatado. As duas outras expressões devem estar noPadrã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 umIF
.
Resumo dos Passos Deste Artigo
- Inclua um gráfico do tipo Combinado e adicione a dimensão desejada.
- Adicione a expressão para o cálculo das barras. Configure para que o valor seja apresentado dentro do segmento.
- Adicione uma segunda expressão usando
DUAL
eNUM
para comparar os períodos viaSETANALYSIS
. - Para a segunda expressão, utilize a representação
Linhas
e assinale a opçãoInvisível
. - 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?


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Excelente artigo, obrigado!
