Destacando Barras do Gráfico

De Qknow
Ir para: navegação, pesquisa

This document is available in English. Click on flag at side.

EnglishFlag.jpg

Introdução

Highlights Bar Charts 1.PNG

O ajuste de cores de gráficos de barra pode ser realizado através da guia Cores como ocorre em outros tipos de gráficos. Geralmente as cores são atribuídas quando há mais de uma dimensão realizando a quebra dos valores das expressões, motivo pelo qual a sinalização por legendas se faz necessária. No entanto, é possível que apenas uma dimensão exista em um gráfico de barras e ainda assim haja o desejo de destacar barras por um motivo de negócio qualquer. No exemplo ao lado, o gráfico de barras é destacado para chamar a atenção sobre dois aspectos, um demonstrando o maior valor (em vermelho) e outra o menor valor (em azul). Este exemplo é útil para destacar melhores e piores resultados a partir de uma perspectiva. Por exemplo, se estiver representando taxas de acidentes de trabalho, a barra vermelha indica o mês em que houve o maior número de incidentes com trabalhadores, enquanto a barra azul o menor índice.

Para criação do efeito em questão as cores deixam de serem definidas em nível de guia de Cores e passam a utilizar as propriedades da expressão, atribuindo a coloração de acordo com um critério a ser definido. O conceito apresentado ao gráfico de barras pode ser aplicado a outros tipos a partir da propriedade Cor de Fundo da expressão. Este artigo demonstra como destacar barras a partir de um critério de negócio.

Assuma que o gráfico em questão apresente o número de acidentes de trabalho a cada 1.000 profissionais na construção civil. Quanto maior é o índice de acidentes, pior o indicador para o mês de apuração. Por outro lado, quão menor for o índice, melhor o mês da apuração. Diante do modelo associativo, é possível que o QlikView apresente diferentes destaques das barras de acordo com os demais filtros selecionados, permitindo o gestor visualizar informações relevantes com outros filtros aplicados.

  Nota: Para a elaboração do exemplo acima, serão utilizadas apenas as informações referentes aos meses e a taxa de acidentes, conforme instruções abaixo.


Criando o Gráfico de Barras

Para recriar o efeito de destaque utilize o fragmento de script a seguir como massa de dados. Observe que esta carga do tipo INLINE utiliza campos com espaços, por isso são definidos com o delimitador aspas duplas. Já os valores do campo Taxa Acid Graves são delimitados por aspas simples para que o QlikView não interprete a vírgula existente na decimal como separador de campo da instrução LOAD.

LOAD * INLINE [
"Mês Ano", "Taxa Acid Graves"
jan/13,	'26,2'
fev/13,	'22,9'
mar/13,	'27,8'
abr/13,	'25,1'
mai/13,	'27,7'
jun/13,	'27,0'
jul/13,	'27,6'
ago/13,	'28,1'
set/13,	'27,4'
out/13,	'27,2'
nov/13,	'27,2'
dez/13,	'30,2'
jan/14,	'23,5'
fev/14,	'23,4'
mar/14,	'26,1'
abr/14,	'25,2'
mai/14,	'25,4'
jun/14,	'24,0'];


Expression Properties 1.PNG

Com o script executado é possível iniciar o procedimento de criação do gráfico com um clique com o botão da direita sobre uma área vazia da pasta, selecionando o comando Novo Objeto de PastaGráfico. Ao avançar para a lista de Dimensões o campo Mês Ano é adicionado a lista de dimensões usadas. Para um melhor acabamento do gráfico é importante desmarcar a opção Rótulo nesta mesma guia.

Ao avançar para a guia Expressões, basta adicionar a expressão =SUM([Taxa Acid Graves]) que representa o somatório dos acidentes de trabalhos ocorridos. Claro que para a massa de dados do exemplo o valor somado será o mesmo que o próprio valor da carga, pois o objetivo desta seção é a configuração do gráfico e não a carga da massa de dados em menor nível de detalhes. É recomendável que um rótulo também seja ajustado na medida em que uma tooltip é exibida com o texto do rótulo quando o mouse é posicionado sobre as barras.

As cores de cada barra serão calculadas a partir de uma expressão inserida no contexto da propriedade da expressão. Ao clicar no sinal de mais (+) ao lado da expressão as propriedades são exibidas, incluindo a Cor de Fundo alvo deste tutorial.


Expression Properties 2.PNG

Para destacar a barra com o pior resultado será necessário inserir uma condição através da função IF. Portanto, a primeira parte da expressão a ser inserida na propriedade Cor de Fundo corresponde a identificação da barra que contém o maior valor entre todas as apresentadas. Desta maneira, a seguinte fórmula é inserida.

=If(Sum([Taxa Acid Graves]) = Max(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) , RGB(245, 121,111), RGB(122,122,122))

A função IF testa se o somatório do número de acidentes decorrente da fórmula Sum([Taxa Acid Graves]) é igual ao maior número de acidentes encontrado em todas as barras. É importante destacar que ao executar a operação Sum([Taxa Acid Graves] o QlikView divide o número somado para cada um dos valores das dimensões. Ou seja, o somatório do número de acidentes graves é "quebrado" pelo período de Mês/Ano, automaticamente.

Logo, a expressão Sum([Taxa Acid Graves] é, na verdade, cada uma das barras que precisa ser comparada com a maior barra ainda não identificada. O passo seguinte é identificar qual de todas as barras é aquela que detém o maior número de acidentes. Para isso, a expressão utiliza da função Aggr parar criar em memória uma tabela contendo a relação dos valores pelo campo Mês Ano.


A sintaxe elementar da função Aggr é:

Aggr(função_de_agregação, campo_agregadoor)

Quando a função Aggr é executada o QlikView realiza a operação que estiver definida no parâmetro função_de_agregação, no exemplo, Sum([Taxa Acid Graves]). Porém, o objetivo não é somar a coluna inteira em um único valor final, mas quebrar o valor em cada mês e ano. Por isso, o segundo parâmetro campo_agregador instrui a função a separar cada valor de acidente por seu respectivo período, resultando em uma tabela em memória semelhante a seguinte:

 Mês/Ano, Taxa de Acidentes
 jan/13   26,2
 fev/13   22,9
 mar/13   27,8
 abr/13   25,1
 mai/13   27,7
 jun/13   27,0
 jul/13   27,6
 ago/13   28,1
 set/13   27,4
 out/13   27,2
 nov/13   27,2
 ...      ...
 ...      ...

Para completar a comparação da condição IF é necessário obter da tabela em memória (acima) o maior valor que existir. Por isso, a função Max é utilizada sobre o resultado de Aggr retornando a maior ocorrência. Porém, para que a operação de Max ocorra de maneira adequada o parâmetro TOTAL é utilizado para que a dimensão utilizada no gráfico seja ignorada. O resultado de Max(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) é a identificação do maior valor de taxa de acidentes entre todos os meses e anos.

A operação realizada pela função IF percorre cada coluna conforme explicação acima até que se torne verdadeira a comparação entre a barra atual e o maior valor obtido em todas as barras. Assim que o valor é identificado, a parte verdadeira da função IF é executada aplicando a cor RGB(245, 121,111) (exemplo a seguir). Para todas as outras barras (situação falsa do IF) a cor designada é RGB(122,122,122). O efeito prático pode ser observado no gráfico a seguir.

Highlights Bar Charts 2.PNG

Destacando o Menor Valor

Utilizando a técnica apresentada na seção anterior, é possível configurar a condição IF para sinalizar a barra do gráfico que corresponde ao mês com menor número de acidentes de trabalho. Esta operação é realizada adicionando uma segunda operação IF a partir do resultado falso do primeiro teste. Ou seja, se o valor da barra não é o maior, é o menor? A função é alterada para compor a seguinte instrução:

=If(Sum([Taxa Acid Graves]) = Max(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) , RGB(245, 121, 111), 
 If(Sum([Taxa Acid Graves]) = Min(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) , RGB(111, 121, 211), RGB(122, 122, 122)))

Note que praticamente não há diferença entre as duas ocorrências da instrução IF, a não ser o fato de que a função Min é utilizada para retornar o menor valor obtido da relação da operação Aggr O resultado verdadeiro é a aplicação da cor RGB(111, 121, 211), enquanto para todas as outras o cinza é definido. Ou seja, não sendo o maior, nem o menor, a função RGB(122, 122, 122) aplica o tom desejado.

  Nota: Observe que o segundo IF é executado sob a condição falsa do primeiro.

Com alguns ajustes adicionais o gráfico final será semelhante ao exibido a seguir.

  • Na guia Título, desmarque a opção Mostrar Título.
  • Em Layout, configure a Largura da Borda para zero (0).
  • Na guia Número, altere o formato para Fixo com 2 Decimais.
  • Na guia Eixo, assinale a opção Ocultar Eixo. Adicionalmente, marque a opção / para Rótulos da Dimensão Primária.
  • Em Expressões, marque a opção Valores sobre os Dados.


Highlights Bar Charts 3.PNG


Utilizando Variáveis de Cores

Variáveis são ponteiros nomeados em memória capazes de armazenar informações. No QlikView, variáveis podem ser definidas acessando o menu ConfiguraçãoVisão Geral das Variáveis. A definição também pode ocorrer por meio da execução do script de carga através das instruções SET e LET. Esta seção descreve como utilizar variáveis para definição de cores que podem ser úteis em diversos elementos gráficos e ajustáveis a partir de um único ponto. O seguinte fragmento de código a ser adicionado ao script cria uma paleta de cores reutilizável.

// Paleta de Cores //
LET vColorBlueLogo 	= '=RGB(052, 067, 086)';
LET vColorBlue2Logo	= '=RGB(010, 159, 218)';
LET vColorYellowLogo    = '=RGB(242, 181, 037)';
LET vColorRed 		= '=RGB(215, 033, 045)';
LET vColorBrown 	= '=RGB(135, 085, 053)';
LET vCorDados1		= '=RGB(079, 129, 188)';
LET vCorDados2		= '=RGB(078, 184, 188)';
LET vCorDados3		= '=RGB(255, 000, 000)';
LET vCorDados4		= '=RGB(000, 185, 092)';
LET vCorDados5		= '=RGB(078, 188, 136)';
LET vCorDados6		= '=RGB(173, 173, 173)';
LET vCorTitulos 	= '=RGB(036, 034, 121)';
LET vColorFilter	= '=RGB(243, 245, 249)';

A instrução LET instrui o QlikView a criar uma variável com o nome informado contendo o resultado da operação da igualdade (=). Na paleta acima, a função RGB é executada retornando a variável uma cor específica resultante da combinação de R (red), G (green) e B (blue). Após executar o script (CTRL + R) as variáveis são definidas e tornam-se disponíveis para qualquer elemento gráfico. Na instrução utilizada neste artigo é possível substituir a definição das cores por variáveis, assumindo a seguinte expressão para a propriedade Cor de Fundo:

=If(Sum([Taxa Acid Graves]) = Max(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) , vColorRed, 
 If(Sum([Taxa Acid Graves]) = Min(Total Aggr(Sum([Taxa Acid Graves]), [Mês Ano])) , vCorDados2, vCorDados6))

Highlights Bar Charts 4.PNG


Funções Utilizadas

  • IF
  • SUM
  • AGGR
  • MAX
  • MIN
  • RGB


Assuntos Relacionados


Envelope01.jpg
Procurando Algo? Fale Conosco!

Voltar | Página Principal