PBI Visualizações personalizadas

Parte 3/4

Tacómetro

O Tacómetro é uma das visualizações preferidas quando se necessita de apresentar resultados uma vez que a utilização de áreas coloridas com a representação de valores de aceitação.

Na loja da Microsoft podemos encontrar o Tachometer by Annik Ink (https://appsource.microsoft.com/en-us/product/power-bi-visuals/WA104380937?tab=Overview).

Se nos referenciar-mos ao gráfico Donut e a sua forma de funcionamento (ver parte 2) e compreendermos a forma como o Tacómetro está montado será possível criar uma réplica.

Os pressupostos do tacómetro estão descritos abaixo:

  • 1 marcador
  • 3 áreas coloridas: Verde, Amarela, Vermelha
  • Todas as áreas seguem o seguinte esquema (simplificação para efeitos de exemplo):
    • Abaixo de 33,3% Verde
    • Entre 33,3% e 66,6% Amarelo
    • Acima de 66,6% Vermelho

Montar o Tacómetro

Se olharmos para o gráfico como um puzzle, e tendo em atenção a forma como o gráfico Donut funciona verificamos que não necessitamos de apenas 4 elementos.

A divisão das partes do gráfico será a seguinte:

  • 8 Áreas
    • 2 para Vermelho (acima e abaixo do marcador)
    • 2 para Verde (acima e abaixo do marcador)
    • 4 para Amarelo (Donut inicia no topo e no sentido do ponteiro do relógio logo a área amarela central ficara no 1º e no 4º quadrante)
  • 3 marcadores
    • 1 marcador por cada área colorida
  • 1 zona em branco

Medidas utilizadas:

Unused Area = 50 //Zona em branco
==========================================
Green Marker =
VAR Fillquantity = [Unused Area] / 3
RETURN
    IF ( [Incremental Value] / 2 * 100 >= 50 / 3; BLANK (); 1 )
==========================================
Green after marker =
    IF (
        [Green Marker] = BLANK ();
        50/3;
        IF (
            [Incremental Value] = 0; //Validação do 0 de modo a colocar o marcador no inicio do Tacómetro
            50/3 - 1; // Quando o Tacómetro é 0
            50/3 - [Green Marker] - [Green fill before marker] 
        )
    )
==========================================
Green before marker =
IF (
    [Green Marker] = BLANK ();
    0;
    IF (
        50/6 + ( [Incremental Value] / 2 * 100 - ( 50/6 ) ) < 0; 
        0;
        50/6 + ( [Incremental Value] / 2 * 100 - ( 50/6 ) - [Green Marker] )
    )
)
==========================================
Red Marker =
IF (
    [Green Marker] = BLANK ()
        && [yellow 1st Marker] = BLANK ()
        && [Yellow 2nd marker] = BLANK ();
    1;
    0
)
==========================================
Red Before Marker =
IF (
    [Red Marker] = BLANK ();
    50 / 3;
    IF (
        50 / 3 + ( ( [Incremental Value] * 100 - 100 ) / 2 - 1 ) < 0;
        0;
        50 / 3 + ( ( [Incremental Value] * 100 - 100 ) / 2 - 1 )
    )
)
==========================================
Red after marker =
IF ( [Red Marker] = BLANK (); 0; 50 / 3 - [Red Before Marker] - [Red Marker] )
==========================================
Yellow 1st Marker =
IF (
    [Green Marker] = BLANK ();
    IF (
        Incremental[Incremental Value] <= 50 / 6
            && Incremental[Incremental Value] < 0,5;
        IF ( Incremental[Incremental Value] / 2 * 100 <= 50 / 1,5; 1; 0 );
        BLANK ()
    )
)
==========================================
Yellow after 1st marker =
IF (
    [yellow 1st Marker] = BLANK ();
    0;
    IF (
        50 / 6 - ( ( [Incremental Value] * 100 - 100 / 3 ) / 2 ) + [yellow 1st Marker] > 50 / 6;
        50 / 6 - 1;
        50 / 6 - ( ( [Incremental Value] * 100 - 100 / 3 ) / 2 )
    )
)
==========================================
Yellow after 2nd marker =
IF (
    [Yellow before 2nd marker] < 0;
    50 / 6 - [Yellow 2nd marker];
    50 / 6 - [Yellow before 2nd marker] - [Yellow 2nd marker]
)
==========================================
Yellow before 1st marker =
50/6  - [Yellow after 1st marker] - [yellow 1st Marker]
==========================================
Yellow before 2nd marker =
IF (
    [Yellow 2nd marker] = BLANK ();
    50 / 6;
    50 / 6 - ( 100 / 3 - ( [Incremental Value] * 100 ) / 2 ) - 1
)

Notas:

Quando os valores selecionados estão nos limites das áreas vermelha, amarela e verde os outros dois marcadores não estão visíveis .

O valor incremental é de base 100 sendo o gráfico metade de um Donut a base passa a 50 assim um valor de 10% vai corresponder a 5% no tacómetro.

Como por cada cor existem duas zonas cada uma corresponde a 1/6 e não 1/3, sendo que a área amarela (devido ao funcionamento do gráfico Donut) tem de ter 1/12 pois vais ter 4 áreas.

Agora necessitamos de montar o gráfico com de forma correta (considerando a rotação no sentido dos ponteiros dos relógios):

  1. Yellow before 2nd marker
  2. Yellow 2nd marker
  3. Red before marker
  4. Red marker
  5. Red after marker
  6. Unused Area
  7. Green before marker
  8. Green marker
  9. Green after marker
  10. Yellow before 1st marker
  11. Yellow 1st marker
  12. Yellow after 1st marker

Nas imagens abaixo podemos verificar a posição do marcador quando comparado com o gráfico Gauge (visualização padrão do PBI).

Tachomete.png

Na ultima parte deste post irei explicar como criar um gráfico Gantt utilizando uma tabela matriz.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s

%d bloggers gostam disto: