Faça o que for necessário para apresentar os dados de modo a ajudar na análise e no raciocínio. - Edward Tufte
Como criar gráficos como esses se você ainda não tem uma ferramenta de visualização de dados pronta e bacana?
Você pode executar consultas para manipular os dados e obter os resultados. Muitas vezes, você deseja apresentar os dados visualmente em gráficos de pizza, gráficos de bolhas, histogramas e gráficos de linha. Se você tiver o Tableau, o Cognos, etc., será mais fácil visualizar. Caso contrário, você terá que copiar os resultados no Google Sheets ou no Excel. Recortar e colar os resultados no Google Sheets é difícil, devido à formatação, problemas de linhas de cabeçalho etc. No entanto, o Couchbase Query Workbench facilita isso. Ao lado dos resultados da consulta, temos um cópia que copia o resultado em um formato tabular que pode ser colado em planilhas como o Google Sheets, Excel etc. Esse recurso está disponível no workbench de consulta e no workbench de consulta analítica.
Vamos dar uma olhada em alguns dados e gráficos de amostra.
- Calcule os tipos de documentos e sua contagem.
Aqui está a consulta sobre o conjunto de dados de amostra de viagem fornecido com o Couchbase. Clique na imagem para ver a animação em GIF.
1 2 3 4 5 6 7 |
SELECIONAR tipo, CONTAGEM(1) contagem de tipos DE `viagem-amostra GRUPO BY tipo ORDER BY contagem de tipos |
1 2 3 4 5 6 7 8 |
tipo contagem de tipos "companhia aérea" 187 "hotel" 917 "aeroporto" 1968 "marco" 4495 "route" (rota) 24024 |
Aqui está o gráfico de pizza criado para os dados. Ele pode ser facilmente personalizado em termos de cores, exibição de dados, vários rótulos e legendas.
Clique na imagem para ver a animação GIF sobre como obter os resultados no Google Sheets para obter os gráficos em um segundo.
2. Tarefa: Encontrar as 10 principais cidades com o maior número de hotéis.
1 2 3 4 5 6 7 8 9 10 11 |
SELECIONAR país, cidade, CONTAGEM(1) contagem de hotéis DE `viagem-amostra ONDE tipo = 'hotel' GRUPO BY país, cidade ORDER BY contagem de hotéis DESC LIMITE 10 |
Resultados:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cidade país contagem de hotéis "São Francisco" "Estados Unidos" 132 "Londres" "Reino Unido" 67 "Paris" "França" 64 "San Diego" "Estados Unidos" 48 "Birmingham" "Reino Unido" 36 "Los Angeles" "Estados Unidos" 35 "Reino Unido" 23 "Santa Mônica" "Estados Unidos" 14 "Malibu" "Estados Unidos" 12 "Edimburgo" "Reino Unido" 10 |
A única personalização do histograma aqui é adicionar os rótulos de dados para mostrar o número real de hotéis.
2. Tarefa: Encontrar as 5 principais cidades com o maior número de hotéis com "jardins" na avaliação
1 2 3 4 5 6 7 8 9 10 |
SELECIONAR cidade, CONTAGEM(1) contagem de hotéis DE `viagem-amostra ONDE tipo = 'hotel' E QUALQUER r IN revisões SATISFAÇÕES search(r.content, "jardim") FIM GRUPO BY cidade ORDER BY contagem de hotéis DESC LIMITE 5; |
1 2 3 4 5 6 |
cidade contagem de hotéis "Paris" 10 5 "São Francisco" 5 "San Diego" 4 "Edimburgo" 3 |
Basta escolher o "Doughnut piechart" e adicionar os rótulos.
6. Os gráficos de bolhas exigem que você crie o valor percentual para cada linha. A função de janela RATIO_TO_REPORT() ajudam você a fazer isso facilmente. Quando você tiver sua consulta, crie uma bolha
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECIONAR país, cidade, SUM(ARRAY_SUM(resenhas[*].avaliações[*].Localização)) / CONTAGEM(1) city_avglocation, SUM(ARRAY_SUM(resenhas[*].avaliações[*].Serviço)) / CONTAGEM(1) city_avgservice, RATIO_TO_REPORT(CONTAGEM(1)) SOBRE(partição por país) * 100 ratio_val, (TO_STR(REDONDA(RATIO_TO_REPORT(CONTAGEM(1)) SOBRE(partição por país) * 100, 0)) || "%" ) AS ratio_percent DE `viagem-amostra ONDE tipo = 'hotel' grupo por país, cidade ordem por valor_da_razão desc, city_avgservice desc, valor_valor_da_cidade desc LIMITE 10 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cidade city_avglocation city_avgservice país ratio_percent proporção_val "Paris" 13.75 15.421875 "França" "46%" 45.714285714285715 "São Francisco" 15.583333333333334 16.71969696969697 "Estados Unidos" "37%" 36.56509695290859 "Londres" 11.567164179104477 15.746268656716419 "Reino Unido" "16%" 16.105769230769234 "San Diego" 15.583333333333334 16.729166666666668 "Estados Unidos" "13%" 13.29639889196676 "Los Angeles" 11.971428571428572 12.628571428571428 "Estados Unidos" "10%" 9.695290858725762 "Birmingham" 14.666666666666666 18.083333333333332 "Reino Unido" "9%" 8.653846153846153 "Avignon" 10.375 13.375 "França" "6%" 5.714285714285714 16.91304347826087 17.782608695652176 "Reino Unido" "6%" 5.528846153846153 "Chamonix-Mont-Blanc" 18 29.142857142857142 "França" "5%" 5 "Agradável" 11.571428571428571 15 "França" "5%" 5 |

Gráfico de bolhas mostrando a classificação média por local, etc. O tamanho da bolha mostra o número de hotéis representados no respectivo país.
Este GIF animado mostra como criar esse gráfico.
7. Criar gráficos geográficos é muito fácil no Google Charts, pois ele reconhece os países e as cidades. Você não precisa lidar com latlongs.
1 2 3 4 5 |
Selecione país, contagem(1) num_hotels de `viagens-amostra` onde tipo = "companhia aérea |
1 2 3 4 5 6 |
país num_hotéis "Estados Unidos" 127 "Reino Unido" 39 "França" 21 |
Com os dados acima, basta colar em uma planilha do Google e criar um gráfico geográfico.
8. Você também pode criar um gráfico geográfico com marcadores (bolhas proporcionais), novamente, usando as funções da janela RATIO_TO_REPORT().
1 2 3 4 5 6 7 8 |
SELECIONAR país, CONTAGEM(1) AS num_hotels, (TOSTR(REDONDA(ÍNDICE_PARA_RELATÓRIO(CONTAGEM(1)) SOBRE () * 100,0)) || "%") AS hotels_percent DE `viagens-amostra` ONDE tipo = 'hotel' GRUPO BY país; |
1 2 3 4 5 6 |
país hotels_percent num_hotéis "Reino Unido" "45%" 416 "França" "15%" 140 "Estados Unidos" "39%" 361 |
Você também pode personalizar os gráficos de acordo com a região, por exemplo, os Estados Unidos.
Por fim, a consulta para gerar o primeiro gráfico deste blog:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
SELECIONAR país, cidade, SUM(ARRAY_SUM(revisões[*].classificações[*].Localização)) / CONTAGEM(1) city_avglocation, SUM(ARRAY_SUM(revisões[*].classificações[*].Serviço)) / CONTAGEM(1) city_avgservice, SUM(ARRAY_SUM(revisões[*].classificações[*].Geral)) / CONTAGEM(1) city_avgoverall, SUM(ARRAY_SUM(revisões[*].classificações[*].Quartos)) / CONTAGEM(1) city_avgrooms, SUM(ARRAY_SUM(revisões[*].classificações[*].`Valor`)) / CONTAGEM(1) valor_valor_da_cidade DE `viagens-amostra` ONDE tipo = 'hotel' grupo por país, cidade ordem por city_avgservice desc, valor_valor_da_cidade desc LIMITE 50 |