Gráficos e visualização de dados: o painel que cabe numa decisão
Escolha o gráfico pela decisão que ele precisa apoiar: comparar valores, acompanhar uma tendência, avaliar uma meta ou conferir números exatos. Imagine uma reunião de segunda com quarenta indicadores e nenhuma decisão; esse é o cenário didático deste guia. O catálogo reúne quarenta tipos, exemplos com dados e receitas de construção. A escolha da biblioteca vem depois da pergunta, acompanhada de critérios de acessibilidade e da origem de cada número.
A pesquisa de fontes primárias consultadas em 02/09/2026 e os guias taxonômicos de relatórios visuais e stacks de frontend orientam as comparações. As referências de contraste, desempenho e licenças foram conferidas novamente em 10/09/2026, e a revisão de 08/10/2026 acrescentou estudos de percepção, acessibilidade e leitura por IA, listados no registro de mudanças. Esta leitura complementa os guias de ícones, ilustrações, animação e geração de imagens e de diagramas de arquitetura e fluxo.
A aula, em vídeo e em podcast
O vídeo e o podcast foram gerados no NotebookLM a partir da página publicada. Os arquivos originais estão disponíveis sem recompressão, com download, compartilhamento e transcrição completa para ler e copiar. As transcrições preservam a fala das gravações; as correções técnicas abaixo atualizam pontos que mudam a decisão de implementação.
Errata das gravações, revisada em 08/10/2026: a fala gravada fica como está, e cinco trechos dela pedem leitura com estas correções.
O uPlot informa cerca de 50 kB minificados no README do projeto; a conversa cita 40 kB.
Para cruzar filtros num painel, a primeira tentativa deste guia é o Apache ECharts; o ApexCharts entra quando o caso pede anotação e filtro cruzado prontos sem trocar de biblioteca.
Canvas não pinta milhões de pontos "como se fosse nada": o custo depende do aparelho, do volume e da interação. Meça com a série real, como a oficina de séries densas propõe.
OKLCH distribui a claridade de forma mais uniforme, mas não garante contraste WCAG. A razão de contraste se calcula pela luminância relativa e se confere nos dois temas.
A expressão "pura neurociência", usada sobre small multiples, carece de fonte. A evidência citável está na seção de percepção.
Vídeo da aula: o panorama das decisões deste guia, com legenda em português.Transcrição do vídeo
Olá, time! É muito bom ter a equipe toda reunida nesta nossa aula de hoje para o portal Lead Lovers 2026. A gente vai mergulhar fundo nos nossos padrões de visualização de dados e o foco vai ser totalmente prático e direto. A ideia é responder a uma pergunta simples. Como transformar dados técnicos em decisões reais para o negócio, sem nenhuma enrolação visual? A nossa pauta é cirúrgica. Vamos passar pelo problema das 40 métricas, entender a hierarquia da percepção, cravar as regras de bibliotecas, SVG e canvas, garantir o contraste WCAG, blindar nossos dados contra alucinações de IA e fechar com o nosso principal objetivo, o painel de uma página. E vamos direto ao ponto. Começando pelo problema das 40 métricas.
Todo mundo aqui conhece a dor operacional dessa frase. O erro clássico, aquele que acontece antes mesmo da primeira linha de código ser escrita, é não perguntar quem vai ler. Pensa bem. Um relatório de leitura para a diretoria exige metas claras e recomendações, com quase zero interação. Por outro lado, um painel de exploração que o time de mídia usa para caçar a campanha que está sangrando o orçamento precisa de filtros profundos, uma densidade altíssima. Quando se mistura esses dois contextos numa tela só, o resultado é um desastre. Fica denso demais para tomar uma decisão rápida e raso demais para investigar a causa raiz. E como a gente blinda o portal contra isso? Com a regra estrita dos dois cliques. É inegociável. Se a pessoa que bate o olho no painel não descobre e no máximo dois cliques de onde vem o número, o que ele significa tecnicamente,
quando foi atualizado e quem é o dono dele? Bom, então aquela tela ainda pertence a quem programou e não a quem decide. A instrução para o time é claríssima. Antes de escolher qualquer biblioteca, é obrigatório escrever em uma única frase qual decisão aquela interface alimenta e quem toma essa decisão. Sem isso, o pedido simplesmente volta para a fila. Passando agora para a nossa segunda sessão. A hierarquia da percepção visual. E olha, isso não é achismo de design, viu? É ciência pura, baseada nos experimentos de percepção do Cleveland e do McGill lá de 1984. O nosso cérebro lê posição e comprimento numa escala linear com uma precisão absurda. Muito mais do que quando compara ângulos ou áreas. É por isso que a barra ordenada ganha de lavada da pizza. A ordem decrescente dá a resposta de bandeja.
Já o gráfico de pizza, principalmente se passar de três fatias, é considerado aqui um antipadrão. Ele força o usuário a medir ângulos no olho, o que é literalmente a pior leitura possível na nossa hierarquia. E isso nos leva a outro duelo clássico. O bullet chart contra o famoso velocímetro. Vamos ser sinceros, o velocímetro é um desperdício enorme de tela. Ele chega a roubar um quarto de um painel executivo só para exibir um único número e de quebra esconde a comparação que realmente importa. Já o bullet chart faz exatamente o oposto. Desenhado para aposentar o velocímetro de vez, ele empilha o realizado, a meta e as faixas de variação numa barra super elegante, gastando só um décimo do espaço. O segredo é alinhar a ferramenta visual com a pergunta de negócio que está sendo feita.
Se a dúvida é o que fez nosso número cair de x para y, a gente usa o waterfall, aquela cascata maravilhosa que mostra barra a barra o que somou e subtraiu. Precisa comparar a mesma métrica em vários times para achar quem está tituando? Small multiples resolve. Agora, se a diretoria exige o valor absoluto cravado de plano contra realizado, a variance table, a tabela de variação, entra em cena. Para decisões milimétricas, a tabela é sempre cidadã de primeira classe. Indo para a sessão 3, vamos falar de tecnologia pesada, SVG, canvas e nossas bibliotecas. O nosso ecossistema opera basicamente em duas frentes, SVG e canvas. O SVG é excelente porque usa elementos nativos do DOM, é nítido, aceita tokens de cor fácil
e os leitores de tela entendem perfeitamente. Mas se a gente jogar milhares de elementos operacionais ali, o navegador chora. É aí que entra o canvas, que pinta milhões de pontos como se fosse nada, tudo num bitmap só. Mas tem uma pegadinha aí e ela custa caro. Bitmap não tem semântica. Então ao usar canvas para dados massivos, não tem negociação com a norma WCAG. O time é obrigado a programar uma camada DOM paralela com resumos e tabelas em texto para manter a acessibilidade redondinha. O que nos joga direto para a nossa régua de bibliotecas, válida a partir de setembro de 2026. A regra é rígida, uma única biblioteca por projeto. Quer usar duas? Vai precisar de justificativa técnica por escrito. Para painéis operacionais brutos, a nossa principal escolha é o Apache ECharts,
porque ele faz o swap entre SVG e canvas nativamente. Gráficos editoriais levinhos? Observable Plot. Monitoramento de telemetria massiva em tempo real? O uPlot resolve isso pesando meros 40 kilobytes. Para investigar e cruzar filtros intensos, ApexCharts. E o poderoso D3.js? Esse fica estritamente reservado para visualizações narrativas 100% sob medida, porque, convenhamos, com o D3 a gente não está montando um gráfico. Está abrindo um mini-projeto. Chegamos à sessão 4, acessibilidade e contraste WCAG. Prestem muita atenção nesse número. A norma WCAG 2.2 é clara na diretriz 1.4.3. Todo texto de rótulo e toda etiqueta de eixo nos nossos gráficos
tem que bater a proporção de contraste de, no mínimo, 4,5 para 1 em relação ao fundo, sem exceções. Para os elementos gráficos, como as linhas, as barras e outras formas, a exigência alivia um pouquinho, mas continua firme, 3 para 1. E não adianta validar só na tela clarinha. A maioria das paletas que vêm de fábrica nas bibliotecas vira uma bagunça no dark mode. A auditoria de contraste tem que ser impecável nos dois temas. E como a gente garante isso sem enlouquecer? Disciplina de arquitetura. Cor por token. Todas as cores precisam vir das variáveis CSS para que o gráfico mude de tema organicamente. Se rolar um código hexadecimal chumbado no meio da configuração do gráfico, o PR vai ser reprovado na hora. E tem mais um detalhe importantíssimo. Nenhuma série de dados pode depender só da cor para ser entendida.
O uso de rótulos diretos, marcadores e traços pontilhados é obrigatório para garantir a acessibilidade de quem tem dificuldade de percepção de cores. Avançando para a sessão 5. Integridade, origens e validação IA. A gente sabe que a IA gera gráficos em segundos hoje em dia, mas o risco que vem de carona é altíssimo, as famosas alucinações. O modelo pode simplesmente fabricar um número que parece perfeito para tapar um buraco, mas que não existe na base. Isso destrói a confiança do portal. Por isso, a validação exige 3 passos de segurança. A série renderizada tem que ser idêntica à base, a especificação tem que ser declarativa, ou seja, ler da fonte sem valores chumbados, e o mais importante, o agente de IA é obrigado a apontar a linha exata de origem de cada dado. Se o número não tem origem provada, ele não sobe para a tela.
E vale repetir aquilo que a gente fala há meses. Um número órfão num painel hipermoderno desinforma muito mais do que uma planilha feia. O dado exige contexto permanente, fonte, data e para evitar confusão, o dono do indicador. Além disso, tem uma questão de arquitetura aqui. Filtros e comparações aplicadas pelo usuário precisam morar na URL da página e não escondidos no estado local da aplicação. Se alguém copiar aquele link e mandar para a diretoria no chat, a diretoria tem que abrir e enxergar rigorosamente o mesmo filtro, sem telefone sem fio. E para finalizar, seção 6, o cobiçado painel de uma página. Esse é o nosso antídoto oficial contra a reunião que não resolve nada. Essas restrições não existem para engessar o trabalho, mas para forçar foco. O limite é de 9 a 11 indicadores por painel e só. Toda a porcentagem exibida tem que vir acompanhada
do seu denominador explícito. Tudo ali precisa alimentar aquela decisão escrita em uma frase que falamos no começo. O contraste é todo validado no padrão WCAG nos dois temas e a cereja do bolo da acessibilidade. Cada gráfico ganha seu resumo em texto e a respectiva tabela. É um baita desafio técnico, com certeza, mas é um painel focado 100% em tomar a decisão. E para encerrar esta nossa aula magna de hoje, fica aqui uma provocação. Se pegarmos aquele painel gigantesco que a empresa inteira abre nas segundas-feiras, se a gente aplicar impiedosamente a nossa regra dos dois cliques, arrancar todos os gráficos de pizza e velocímetros, cobrar a taxa de contraste na vírgula e ainda exigir que a IA prove a origem de cada barra gerada, me digam, quantos desses gráficos realmente
continuariam na tela? O verdadeiro valor que a gente entrega não está em pendurar mais um indicador na interface, está em ter a coragem técnica de remover os 39 que não servem para nada. Vamos usar esse material para fazer a limpa, equipe. Bom trabalho e até a próxima.
Transcrição gerada localmente por reconhecimento de fala sobre o áudio original e revisada nos termos técnicos; pequenos desvios de grafia podem permanecer.
Podcast da aula: gráficos e visualização de dados Portal Leadlovers 2026 · menu Design
Podcast da aula: a conversa aprofundada sobre as mesmas decisões.Transcrição do podcast
Neste exato momento, olha, tem empresas do mundo inteiro perdendo milhões em reuniões de diretoria por causa de um único culpado. E o pior é que ninguém ousa questionar isso, né? Pois é. O culpado é simplesmente a forma geométrica de um gráfico que está lá projetado na tela. Exatamente. Bom, hoje o nosso mergulho nas fontes vai desconstruir um material fascinante que é o Guia de Gráficos e Visualização de Dados do portal Lead Lovers 2026. Eu estou super animada para a gente explorar isso. É um documento excelente. A premissa central desse guia, sabe, ela transforma completamente a maneira de a gente olhar para a inteligência de negócios, porque ele deixa muito claro que um painel com 40 indicadores simultâneos... Nossa, 40 é muita coisa?
É loucura. E se termina a reunião sem gerar nenhuma ação imediata, esse painel é, na verdade, o ativo mais inútil e caro da empresa. Com certeza. Ele até impressiona pela complexidade técnica ali na hora da apresentação, mas ele desinforma brutalmente. É muito ruído visual, sabe? Sim. E essa sobrecarga geralmente nasce antes mesmo de alguém abrir o editor de código para montar a tela. Tipo, simplesmente porque a equipe técnica pula etapa de perguntar, hum, quem é a audiência final? Isso. Falta alinhamento. Então, para mitigar isso, o guia traça uma linha muito rígida, separando o que chamam de relatório de leitura do painel de exploração. Como é que funciona essa divisão na prática? Então, a grande diferença estrutural aí está na postura de quem consome a informação.
O relatório de leitura, aquele que é projetado para a liderança na segunda-feira de manhã, ele serve unicamente para alinhar a rota estratégica. Hum, é uma coisa mais direcional. Isso, exatamente. Por causa disso, ele exige pouquíssimos gráficos. Tem que focar estritamente em meta, comparação histórica e... uma recomendação de ação clara. A interação ali beira zero. Faz sentido. A diretoria não vai ficar clicando em filtro durante a apresentação. De jeito nenhum. Agora, em contrapartida, o painel de exploração é um ambiente tático. É a trincheira, sabe? Ah, entendi. Imagina uma equipe de tráfego pago operando no dia a dia. Eles precisam encontrar cirurgicamente qual campanha específica, sei lá, em qual rede
social está drenando o orçamento da semana. O que significa que essa equipe precisa ir do dado geral para o detalhe hipergranular, o famoso drill down, né? Perfeito, o drill down. Sabe uma analogia que me veio à cabeça agora lendo o material? Misturar esses dois públicos na mesma tela seria tipo tentar ler as manchetes de um jornal impresso sobrepostas a um mapa topográfico militar super detalhado. Nossa, que imagem caótica. É, fica impossível. O jornal matinal fica totalmente legível para uma leitura rápida e o mapa militar perde aquela precisão limpa que você precisa para uma investigação em campo. Olha, é uma analogia que captura perfeitamente o desastre de usabilidade que acontece o tempo todo nas empresas.
E para resolver isso na prática, o portal implementou o que eles chamam de regra dos dois cliques. Regra dos dois cliques? Como é isso? A lógica é meio cirúrgica. Se a pessoa que está olhando para o indicador na tela precisa de mais de dois cliques no mouse para descobrir quatro âncoras fundamentais, o painel falhou. Quais âncoras? A fonte original do número, a definição matemática da métrica, a data exata da última atualização no banco de dados e o nome do responsável por aquele indicador. Caramba, fonte, definição, data e dono. Isso. Se o painel não responde isso rápido, ele continua sendo um projeto de estimação do desenvolvedor. Não é uma ferramenta útil para quem decide. Nossa, total. Porque imagina, se alguém na reunião questiona por que as vendas caíram e o
apresentador não consegue mostrar a origem do dado na hora em dois cliques. Não confio se acaba na hora. Exato, evapora. E por isso a diretriz do guia estabelece uma tela única com o máximo de 9 a 11 indicadores e os denominadores de cada métrica têm que estar ali escancarados. É, não tem como fugir. A regra da casa deles diz que antes mesmo de escolher a biblioteca de programação o time tem que escrever em uma frase qual decisão aquela tela alimenta. Sem essa declaração o pedido volta para o solicitante. Devolvido na hora. Bom, mais uma vez que essa decisão está documentada a engenharia esbarra no próximo gargalo, que é super curioso porque é um problema biológico. Sim, entramos na neurociência. O guia traz os experimentos de percepção gráfica clássicos, né?
Do William Cleveland e do Robert McGill. Foram publicados originalmente em 1984. 1984, pois é. Faz tempo, mas a biologia não muda. Esses estudos provaram que o nosso cérebro decodifica a informação visual através de uma hierarquia muito rígida. O que eu achei mais intrigante para compartilhar com quem está ouvindo é como o nervo óptico atua como um instrumento de medição mesmo, sabe? Quando a gente analisa valores olhando a posição num eixo ou o comprimento de uma barra, a margem de erro mental é quase nula. O olho traça uma linha imaginária e resolve a matemática. É automático. Agora, quando a interface reforça o olho a calcular área, tipo, o tamanho de um círculo ou saturação de cor. Ou ângulo de fatia geométrica.
Isso. Aí a precisão cognitiva simplesmente desmorona. E isso nos leva diretamente ao maior vilão corporativo de todos os tempos. Pode falar. O famigerado gráfico de pizza. Mas todo mundo ama gráfico de pizza. Por que ele é tão ruim? Olha, uma pizza com mais de três fatias obriga o seu córtex visual a medir e comparar ângulos rotacionando essas formas no espaço mental. Tipo, de forma simultânea. Fisiologicamente, isso consome muita energia. Dá um cansaço só de tentar ler um com dez fatias. É ineficiente. Por isso que as barras ordenadas vencem a pizza quase sempre. Numa barra horizontal em ordem decrescente, o olho rastreia só a ponta da linha e cria o ranking instantâneo.
Sem gastar energia mental tentando adivinhar se a fatia A é 3% maior que a fatia B. A barra ordenada tira toda a fricção, né? Outro embate maravilhoso que o material resolve é o do gráfico de velocímetro contra o bullet chart. Ah, esse é clássico. O velocímetro faz o maior sucesso em sala de comando, parece painel de carro, mas consome um quarto da tela inteira só para mostrar um ponteiro. Ele sacrifica totalmente o histórico que a gente precisa para saber se comemora ou se entra em pânico. Totalmente. E aí entra o Stephen Few. Ele criou o bullet chart justamente para resolver essa falta de densidade visual. O guia adota o bullet chart como o padrão ouro para metas. Para quem está acompanhando e não conhece, como a gente descreve o bullet chart?
Ele é tipo um comprimido de informação. Ele pega toda a complexidade do velocímetro e espreme num décimo do espaço. Ele empilha uma barra escura, que é o número realizado, e cruza uma linha marcadora pequenininha que é a meta. E o fundo tem os tons de cinza, né? Isso. O fundo indica se está na zona crítica, aceitável ou de superação. Então, num passar de olhos numa linha reta, a pessoa tem cinco camadas de contexto. Super elegante. O guia também cita diagramas de waterfall, as famosas cascatas, para explicar a dinheiro. Tipo, por que começamos o mês com 100 mil e terminamos com 80 mil? Uhum. Os bloquinhos verdes e vermelhos flutuando, mostrando quem somou e quem subtraiu o dinheiro. Ajuda demais.
E, claro, os small multiples, aquelas grades com dezenas de gráficos pequenininhos e idênticos. O cérebro vê o padrão geral rapidinho. E se tiver uma filial com a curva quebrada, ela salta aos olhos feito um alarme, sabe? Pura neurociência aplicada. E, bom, com a forma resolvida, o projeto vai para a camada de execução, o código mesmo. E aqui a gente entra na divisão técnica do guia da Lead Lovers, que é bem rigorosa entre duas tecnologias fundamentais, o SVG e o Canvas. Nossa, sim! O pedágio de cada pixel. Eu achei essa parte fascinante. Como é que o navegador interpreta essas duas opções? Olha, no SVG, que significa Scalable Vector Graphics, cada barrinha, cada linha e texto
é injetado como um elemento independente na estrutura da página, na árvore do DOM. O DOM, para quem não é da área, é meio que o esqueleto da página, né? Exato. Imagina uma coleção gigante de blocos de Lego na mesa. Como eles são independentes, você pode manipular cada bloco. Dá para mudar a cor de um bloco usando CSS ou colocar um texto extra quando o mouse passa por cima. E a questão da acessibilidade aí é forte, não é? Perfeita. Os leitores de tela conseguem tatear e ler cada bloco para o usuário com deficiência visual. Certo, mas onde o SVG falha? Porque tem um limite. Falha no peso, né? Quando um gráfico precisa carregar milhares de pontos, tipo monitoramento de sensores numa fábrica, a memória RAM no navegador colapsa tentando rastrear milhares de pecinhas de Lego ao mesmo tempo.
E aí a aba trava, o computador começa a ventilar forte... É um desastre. E é nesse cenário que o Canvas entra. O Canvas não cria bloquinhos. Ele é como uma máquina fotográfica que tira uma polaroide dos dados. Ele entrega para a interface uma única imagem plana, um bitmap. Então ele pode desenhar um milhão de pontos de uma vez só, muito rápido. Em milissegundos, sem gastar quase nada de memória. Tá, mas isso levanta uma questão. Se o Canvas é tão rápido assim e não trava nada, por que não usar o Canvas para tudo e abolir o SVG? Aí é que tá. É uma barreira ética e normativa. O pedágio de acessibilidade da WCAG. Como o Canvas gera só uma imagem chapada de pixels, o leitor de tela não enxerga nada ali. É mudo.
Ah, e não dá para selecionar texto, não dá para traduzir. Exatamente. A WCAG não abre exceção. Se o engenheiro quer usar Canvas, ele é obrigado, por regra, a construir um painel oculto paralelo no código com um resumo textual e uma tabela HTML gigante com todos os dados. Nossa, muito trabalho extra para manter. Então a régua do portal fica. Gráficos editoriais e painéis gerenciais vão sempre de SVG pela acessibilidade nativa. E telas de operação bruta com milhares de logs vão de Canvas arcando com esse pedágio da tabela paralela. Isso mesmo, dualidade mapeada. Mas a escolha da tecnologia leva ao próximo pilar, que é um perigo a longo prazo, as bibliotecas de software.
O guia de setembro de 2026 desenha um modelo bem restrito. A regra de uma biblioteca por projeto, né? Isso. Se quiser colocar uma segunda ferramenta no projeto, o arquiteto tem que justificar formalmente porque a primeira não atendeu. O objetivo é evitar o efeito Frankenstein no código. Faz todo o sentido. Senão o painel vira uma colcha de retalhos visual e de performance. E qual é o catálogo aprovado por eles? Para dor de cabeça do dia a dia, o núcleo duro deles adotou o Apache ECharts versão 6.1. A grande sacada do ECharts é que o desenvolvedor escreve o código uma vez e com um parâmetro ele decide se vai compilar em SVG ou em canvas, dependendo da carga do servidor. Uau, muito prático. E para o resto?
Para a visualização editorial, ele se recomenda o Observable Plot ou visx. E quando a densidade foge de controle mesmo, usam o uPlot. Ah, eu dia essa parte do uPlot. O guia diz que ele empurra milhões de picos no canvas e a biblioteca inteira pesa só 40 kilobytes. É muito eficiente. É minúsculo. E por fim, tem o ApexCharts na versão 7, para painéis de investigação profunda, porque ele já traz filtros cruzados e anotações nativas. Salva semanas de trabalho. Certo, mas eu tenho que levantar uma bola aqui. Lendo essa lista toda, eu senti falta de um nome gigante. E o famoso D3.js. A comunidade ama o D3, dizem que é o padrão ouro. Ah, o D3. Pois é, o guia joga meio que um balde de gelo na idolatria do D3.
O aviso lá é claro. D3 não é uma prateleira de gráficos prontos, é um kit complexo de matemática de vetores. É de muito baixo nível, né? Exato. Botar um desenvolvedor para desenhar 30 barras comparativas básicas usando o D3 é abraçar o caminho mais lento e caro possível. Adoria a analogia que o guia faz. É tipo contratar um arquiteto renomado focado em matemática paramétrica só para montar um móvel genérico da Ikea. É um baita desperdício. O D3.js só é liberado em casos raríssimos, tipo quando a narrativa visual é tão única que não existe nos catálogos prontos do ECharts ou ApexCharts. Entendido. Mas olha, mesmo escolhendo a melhor ferramenta e o melhor formato, nada disso adianta se a audiência não consegue enxergar a tela.
O capítulo de acessibilidade visual traz um dado assustador do relatório WebAIM Million. 95,9%? Das vitrines auditadas reprovaram no contraste. Como chegamos nesse nível? O diagnóstico é simples. As cores que vêm de fábrica nessas bibliotecas abertas foram feitas durante décadas para telas com fundo branco. Ah, o famoso modo claro. Isso. Aí o profissional ativa o modo escuro do sistema no fim do dia e, de repente, a legenda e os eixos simplesmente evaporam naquele fundo cinza escuro. E o time de teste quase nunca confere o gráfico no modo escuro. E a WCAG 2.2 entra como limite inegociável aqui, não é? Inegociável. Contraste de 4,5 para 1 em qualquer texto informativo ou legenda
e 3 para 1 em preenchimentos maiores, tipo a fatia de um gráfico ou uma barra mais grossa. E tem a regra de ouro que eu achei fantástica. Nunca, jamais, permitir que uma informação seja lida apenas pela diferença de cor. É a defesa comercial deles contra o daltonismo. Pois é. Imagina alguém daltônico olhando para um painel financeiro tenso, onde o lucro e a perda estão marcados só por uma bolinha verde ou uma bolinha num tom leve de vermelho sem nenhum texto de apoio. É o caos. Por isso, o guia obriga marcadores visuais cruzados. Setas, rótulos de texto direto, texturas tracejadas, intercala geometria, tipo quadrado para um dado, triângulo apontando para cima para o outro, círculo vazado.
Isso garante que a mensagem chegue. E do ponto de vista do código, o portal baniu totalmente o uso de códigos hexadecimais brutos, né? Totalmente blindado. O programador não pode mais catar um verde hexadecimal qualquer e jogar no código. Toda cor de preenchimento tem que vir de um token semântico. Tipo uma variável puxada do sistema. Isso. E o mais interessante, eles abandonaram o RGB e prescrevem o uso do modelo OKLCH para calcular esses tokens. Que é o OKLCH na prática para quem está ouvindo a gente e está acostumado só com o RGB? O RGB é meio que um sistema arcaico para somar luz no LED do monitor, mas ele não entende direito como o olho humano percebe o brilho entre cores quentes e frias.
O OKLCH simula a percepção contínua e real do nosso olho. Ah, então quando o usuário muda para o modo escuro, o OKLCH ajusta a cor respeitando matematicamente o contraste da WCAG sem a pessoa precisar ficar arremendando o código à mão. Exatamente. A matemática da cor acompanha a biologia do olho. É lindo. Lindo mesmo. Mas aí, com toda essa engenharia super protegida e pensada, a gente cai no flanco vulnerável mais explosivo de todos no desenvolvimento moderno de hoje. A inteligência artificial. Sim. E se a gente simplesmente pedir para uma IA generativa desenhar e codificar o painel em 20 segundos? Aí, a gente convida para dentro de casa o defeito mais caro de todos.
A falsificação silenciosa. As alucinações da IA com os números. Porque, assim, se a IA errar a cor ou o formato num rascunho, alguém avisa e arruma. Mas e se ela errar um indicador financeiro e ninguém notar? Esse é o perigo. Os grandes modelos de linguagem são motores matemáticos focados em previsibilidade de texto, em deixar tudo fluido. Eles não raciocinam. Então se faltar, por exemplo, o faturamento de três semanas no meio de um período longo, o que a IA faz? Ela não gosta de buracos na curva. O impulso nativo dela é fabricar dezenas de números e reais baseados em médias só para preencher aquele vetor e deixar a linha da curva suave e bonita no relatório. E se a diretoria pega um único número falso no meio do painel,
a credibilidade de um projeto de seis meses despenca na mesma hora. Perde-se tudo. Por isso, a regra de defesa número 1 do guia é muito dura. A IA desenha a forma, mas é a fonte que fornece o número puro. E como eles auditam isso sem ter que ler milhares de linhas de código, o macarrônico de interface. É a segunda regra. Eles proibiram a geração de código imperativo, tipo o JavaScript complexo. A IA só pode devolver especificações declarativas, como um arquivo JSON do Vega-Lite. Ah, entendi. Porque o JSON é um arquivo estático de texto que dá para ler com clareza. Um inspetor ou um robô consegue ler ali linha por linha e conferir se ele está puxando dado cru da tabela ou se a IA tentou embutir uma fórmula maluca para arredondar.
Exato. Fecha a porta para truques. E a terceira regra é a transparência radical. O agente LLM é intimado na programação a declarar qualquer lacuna. Se o dado de uma semana sumiu do servidor, a IA é proibida de interpolar. Ela tem que literalmente parar e deixar um buraco visível no gráfico. Deixar o buraco escancarado. Uma fratura honesta na linha visual é mil vezes mais segura que uma transição suave e inventada. Sensacional. Bom, amarrando tudo o que a gente discutiu hoje para a nossa audiência. Um bom painel, então. Precisa declarar a decisão que apoia. Precisa usar formas que o cérebro leia rápido como barras e bullets.
Esquecendo a pizza. Esqueceu a pizza. Tem que respeitar os contrastes da WCAG e o formato adequado entre SVG e canvas. E, óbvio, auditar sem dó os dados gerados pela IA no JSON. Resumo perfeito. Mas, se me permite, o material deixa uma provocação meio filosófica ali nas fronteiras do guia. Eu queria trazer isso pra fechar o pensamento. Opa! Adoro! Manda! Imagina que você montou o gráfico perfeito. Lindo. E aí, no meio da reunião de alinhamento, a equipe de operações vira pra você e diz, legal, mas eu preciso arrastar uma barrinha aqui pra mudar o número da base, arrumar essa célula pra simular o cálculo financeiro do mês. Nossa! Ou seja, eles querem editar o dado direto no painel, ali na hora.
Exato. Quando quem usa o sistema cruza essa linha e quer mexer na célula e rodar a fórmula pesada direto na ferramenta de consumo, o projeto entra em colapso conceitual. Porque deixou de ser um gráfico. Deixou de ser um gráfico. Aquilo não é mais uma visualização. A tela se metamorfoseou numa planilha de banco de dados disfarçada. Tipo um Excel gigante rodando dentro da interface visual. É. E forçar uma biblioteca de gráficos limpos a funcionar como um banco transacional é um erro letal. É por isso que existem plataformas como o sistema Univer, que é tipo a reescrita do Luckysheet, feitos exatamente pra lidar com essa interação celular super densa na web. Caramba! Fica a reflexão de ouro, então. Será que a sua organização tá forçando uma arquitetura visual frágil
a operar como uma planilha contábil pesada? Qual é o custo financeiro oculto de tentar arrancar de um gráfico simples um processamento que só um banco de dados transacional poderia entregar? É uma baita pergunta pra levar pra próxima reunião de planejamento. Sem dúvida. Bom, a nossa imersão analítica de hoje se encerra por aqui. Pra quem acompanhou a gente, espero que o mergulho tenha sido tão revelador pra vocês quanto foi pra nós. Um super abraço, muito obrigada pela companhia e até a próxima jornada guiada pelos dados.
Transcrição gerada localmente por reconhecimento de fala sobre o áudio original e revisada nos termos técnicos; pequenos desvios de grafia podem permanecer.
Antes da biblioteca: quem lê e o que decide?
O erro que gera o painel de quarenta indicadores acontece antes da primeira linha de código, quando ninguém pergunta quem vai ler. Um relatório de leitura, o que a diretoria abre na segunda, precisa de poucos gráficos com meta, comparação e recomendação, e quase nada de interação. Um painel de exploração, o que o time de mídia usa para caçar a campanha que sangra, precisa de filtro, drill-down e período comparado, e aceita densidade que mataria o primeiro. Misturar os dois públicos numa tela só produz o pior dos mundos: denso demais para decidir, raso demais para investigar.
A régua que separa os dois é a mesma que o portal aplica a relatório desde os guias de medição: se quem lê não descobre em dois cliques de onde veio o número, qual a definição da métrica, quando foi atualizada e quem responde por ela, a tela ainda pertence a quem a fez, e não a quem decide. O painel de uma página do glossário, com nove a onze indicadores e denominador explícito em cada um, existe exatamente para caber nessa régua.
Regra da casa: antes de escolher biblioteca, escreva numa frase qual decisão a tela alimenta e quem a toma. Tela sem decisão declarada volta para a mesa de quem pediu; a biblioteca se escolhe depois, e sempre em função dessa frase.
Laboratório visual · A forma visual que explica a decisão
Como escolher um gráfico sem esconder a comparação?
O relatório coloca duas campanhas lado a lado. Uma foi observada durante uma semana; a outra, durante um mês. Escolher barras deixa a diferença fácil de enxergar, mas a comparação ainda precisa de uma base coerente.
Ilustração esquemática para estudo, sem escala quantitativa. Pergunta: qual campanha comparar? · Base: mesmo evento e janela · Leitura: barras com rótulos. Baixar a ilustração
Escolha uma resposta para ver a justificativa e o percurso recomendado.
As linhas mostram a sequência e os caminhos possíveis. Depois da sua resposta, a borda e o texto indicam o percurso recomendado para o caso. Você pode selecionar qualquer etapa para consultar o detalhe.
Ler os dois casos e suas decisões comentadas
O recorte está alinhado
As campanhas usam o mesmo evento de conclusão, a mesma janela e o mesmo critério de inclusão.
Decisão: a condição foi atendida. As definições permitem a comparação proposta, dentro do recorte declarado.
Desenhe com rótulos e tabela para que a leitura possa ser conferida.
O período mudou
Uma série reúne uma semana e a outra reúne um mês; os totais aparecem como se fossem equivalentes.
Decisão: falta conferir ou corrigir. O período explica parte da diferença e impede a leitura direta dos totais.
Alinhe a janela ou separe as séries com uma explicação do limite.
Consultar o fluxo completo em tabela
As séries usam definições e períodos comparáveis?
Etapa
O que conferir
Ação
Nomear a comparação
Defina quem decide e qual alternativa será comparada. Um gráfico precisa responder a essa pergunta.
Escreva a pergunta acima do esboço.
Conferir a base
Identifique evento, grupo observado, unidade e período de cada série.
Coloque as definições lado a lado.
Verificar equivalência
Bases distintas precisam ser alinhadas ou apresentadas com a diferença explícita, sem sugerir uma comparação direta.
Confira unidade, população e janela.
Se atendida: Desenhar e explicar
Use posição ou comprimento para comparar valores e escreva unidade, fonte e período junto do gráfico.
Ofereça a mesma leitura em tabela.
Se pendente: Corrigir a comparação
Recorte um período comparável ou separe as séries e explique o limite da leitura.
Refaça a base antes de escolher a cor.
Testar a conclusão
Peça que alguém diga que decisão os dados permitem e o que permanece incerto.
Registre a ação sustentada pelo recorte.
O que preparar no trabalho
Especificação com pergunta, séries, evento, unidade, período, fonte e tabela equivalente.
Ponto de atenção. Uma cor consistente melhora a leitura, mas não corrige denominadores ou janelas incompatíveis.
Base do exercício: a seção correspondente desta página. Casos ilustrativos construídos para estudo; não representam resultados medidos. Revisão do módulo: .
O tipo certo por pergunta: a hierarquia da percepção
Nos experimentos publicados em 1984 no Journal of the American Statistical Association, William Cleveland e Robert McGill observaram maior precisão na comparação de valores por posição em escala comum do que em codificações como ângulo e área. Para comparar categorias com precisão, barras ordenadas oferecem uma referência comum; para acompanhar uma série no tempo, a linha evidencia a evolução. Rótulos, marcadores e padrões completam a cor quando a informação precisa ser distinguida por toda a audiência.
Linha com meta
Para evolução no tempo. A meta desenhada como referência na própria escala transforma a linha de curiosidade em julgamento: acima ou abaixo do combinado.
Barra ordenada
Para ranquear canais, segmentos ou campanhas. A ordenação decrescente faz o olho ler a resposta sem procurar; ordem alfabética joga esse trabalho no leitor. Categoria com ordem própria, como etapa do funil, faixa de horário ou dia da semana, mantém essa ordem, e o valor decide só quando a pergunta é qual é maior.
Bullet chart
Para meta contra realizado. Stephen Few propôs o bullet chart como alternativa compacta ao velocímetro: realizado, meta e faixas de referência aparecem na mesma escala, permitindo empilhar vários indicadores na mesma coluna.
Waterfall
Para explicar de onde veio uma variação: o que somou e o que subtraiu entre o número de partida e o de chegada, barra a barra, sem parágrafo de justificativa.
Small multiples
Para comparar a mesma métrica entre regiões ou squads: uma grade de gráficos pequenos e idênticos, em que a exceção salta aos olhos porque tudo o mais é igual.
Variance table
Para o valor exato: realizado, plano e período anterior lado a lado, com algarismos tabulares alinhados. Em reporte executivo, a tabela é cidadã de primeira classe.
A hierarquia de Cleveland e McGill segue firme no topo e perde força abaixo dele. Davis e colegas (IEEE TVCG, 2024) mediram 109 pessoas em 130.800 julgamentos, e só cerca de 22% delas reproduziram a ordem canônica inteira; posição e comprimento ficaram estáveis, enquanto ângulo, área e cor trocaram de lugar entre pessoas, e a barra liderou as seis ordens individuais mais frequentes. McColeman e colegas (IEEE TVCG, 2021) acharam um efeito maior que o da escolha do canal: a quantidade de marcas na tela pesou cerca de uma ordem de grandeza mais. Para quem monta painel, a consequência prática é dupla: comparar valores próximos pede posição ou comprimento, e cortar séries rende mais que trocar a forma.
Limites numéricos deste guia: convenções da casa, com a referência externa mais próxima
Decisão
Convenção da casa
Referência externa
Séries num mesmo gráfico
Até quatro com legenda; até cinco com rótulo direto na ponta; até oito só com marcador e traço distintos; acima disso, small multiples ou o grupo "outros".
Guias editoriais ficam entre quatro e sete (UK Analysis Function, quatro linhas; Atlassian, cinco a seis; Datawrapper, sete). Paletas de referência param em sete a nove cores (Paul Tol bright 7, muted 9; Okabe-Ito 8).
Ordem das categorias
Por valor, do maior para o menor, quando a pergunta é qual é maior; ordinais mantêm a ordem natural.
Fygenson, Franconeri e Bertini (IEEE VIS 2023): o arranjo muda a mensagem que o leitor tira.
Quinze categorias na barra ordenada, três séries por grupo nas colunas agrupadas, oito degraus no waterfall, três fatias na rosca
Limites para simplificar a leitura, adotados no catálogo.
Nenhum experimento fixa esses números. Stokes e colegas (IEEE VIS 2022) não acharam penalidade em gráficos muito anotados, então o teto de anotação também é escolha editorial.
Quando revisar a forma: pizzas com muitas fatias dificultam comparar valores próximos; velocímetros ocupam espaço sem mostrar necessariamente o histórico; efeitos 3D podem distorcer proporções. O limite de três fatias adotado neste guia é uma recomendação editorial para simplificar a leitura. Confira qual comparação a forma escolhida permite e use barras quando a tarefa exigir precisão.
Título, eixo e escala: onde o gráfico engana
O título de um gráfico de decisão afirma a conclusão, e o subtítulo carrega métrica, recorte e período. Na reunião de segunda, "Assistentes de IA já são o segundo canal de leads" diz mais que "Leads por canal", e a linha de baixo, "leads por canal de origem, agosto de 2026, base do CRM", diz o que foi medido. A frase precisa coincidir com o traço mais saliente do desenho: quando texto e destaque divergem, o leitor segue o gráfico (Kim e colegas, EmphasisChecker, IEEE VIS 2023). Arunkumar e colegas observaram em 2025, com 104 pessoas, que o texto foi lembrado primeiro em 83% dos casos, por isso uma manchete errada pesa mais que um eixo mal escolhido.
Em painel que atualiza sozinho, a manchete sai do dado por cálculo, com a mesma regra que gera o número; manchete escrita à mão envelhece na primeira atualização. Antes de publicar, faça a pergunta aberta "o que você conclui deste gráfico?" a duas ou três pessoas de fora do projeto. Quadri e colegas (CHI 2024) pediram exatamente isso e só 41% das respostas, 117 de 288, coincidiram com o objetivo de quem desenhou.
O eixo é o segundo lugar onde o gráfico engana, e o zero se decide pela marca. Barra e área codificam o valor no comprimento ou na superfície, então partem sempre do zero. Linha e dispersão codificam posição e podem começar acima de zero, desde que o eixo escreva onde começa e o corte parta de um número redondo (IBM Carbon, ONS e UK Analysis Function convergem nisso). Long e Kay (CHI 2024) não acharam prejuízo para comparar quando o corte preserva a ordem dos valores; Correll e colegas (CHI 2020) mostraram que a sensação de exagero persiste mesmo com aviso. O teto também é escolha: o mesmo valor parece maior quando fica perto da ponta alta do eixo (Bradley e colegas, IEEE TVCG 2024, 300 pessoas), então registre o domínio usado.
Truques de eixo e escala: erro de pessoas e acerto de modelos multimodais, em dois estudos distintos
Truque
Pessoas: erro contra a versão correta (Rho e colegas, CogSci 2024, 68 participantes)
Modelos: acerto em perguntas sobre o gráfico (Misleading ChartQA, EMNLP 2025, 3.026 exemplos)
Eixo de tempo com intervalos irregulares
cerca de 15,4 vezes mais erro
não separado no estudo
Eixo Y invertido
cerca de 7,1 vezes
25,42%
Eixo duplo
cerca de 6,3 vezes
33,08%
Barra com eixo truncado
cerca de 1,4 vez
32,14%
Ordem inadequada das categorias
não medido
23,57%
Dado ausente
não medido
25,71%
Os dois estudos medem coisas diferentes e não se comparam linha a linha. A amostra de Rho e colegas é pequena; leia as razões como ordem de grandeza.
Regra da casa para eixos: barra e área partem do zero; linha e dispersão podem cortar com aviso escrito no eixo. Eixo duplo, eixo invertido e eixo de tempo com intervalos irregulares ficam fora, com uma exceção nomeada: o Pareto, cuja escala da direita é o acumulado da mesma grandeza, de zero a cem, escrito por extenso. Duas grandezas diferentes viram dois gráficos alinhados.
Média e distância entre séries se desenham, porque o olho erra as duas. A média estimada a olho é puxada para os trechos de maior variação e para o extremo da série: Moritz e colegas (IEEE VIS 2023, 140 e 420 pessoas) mediram erro de 3% na linha contra 0,7% nos pontos, e Savalia e colegas (IEEE VIS 2025) viram o desvio rumo ao extremo global. A distância entre duas linhas que sobem juntas também é subestimada, a ilusão do seno descrita num artigo curto do IEEE VIS 2024. Por isso a média entra como linha de referência rotulada, e a diferença entre séries vira uma série própria.
Incerteza aparece no desenho. Taxa calculada sobre base pequena ganha intervalo, como na barra de intervalo do catálogo, ou pontos de frequência no lugar de um número limpo. No quantile dotplot, cada ponto vale uma fração igual da distribuição, e o leitor conta pontos em vez de estimar área: Fernandes e colegas (CHI 2018) registraram decisões em 97% do ganho ótimo com ele, cinco pontos acima do controle. Hofman, Goldstein e Hullman (CHI 2020) mostraram que o intervalo de confiança faz superestimar o efeito frente ao intervalo de predição, então diga no subtítulo qual dos dois está desenhado. Para comparar razões com bases diferentes, a tabela com a razão já calculada levou à estratégia correta com mais frequência que as barras (Xiong e colegas, IEEE TVCG, 2024).
O título afirma a conclusão e coincide com o traço mais saliente; o subtítulo traz métrica, recorte e período.
Barra e área começam no zero; linha cortada tem o início escrito no eixo.
Nenhum eixo duplo fora do Pareto, nenhum eixo invertido, nenhum intervalo de tempo irregular desenhado como regular.
Média e diferença entre séries aparecem desenhadas e rotuladas.
Taxa de base pequena mostra intervalo ou frequência, e o subtítulo diz que intervalo é.
Três pessoas de fora responderam "o que você conclui?", e a resposta bateu com o título.
Fontes consultadas em 08/10/2026: Stokes, Setlur, Cogley, Satyanarayan e Hearst (IEEE VIS 2022, TVCG 2023); Kim e colegas, EmphasisChecker (IEEE VIS 2023); Arunkumar e colegas (2025); Quadri e colegas (CHI 2024); Long e Kay, "To Cut or Not To Cut?" (CHI 2024); Correll e colegas (CHI 2020); Bradley, Strain, Jay e Stewart (IEEE TVCG 2024); Rho, Rau, Bharti e colegas (CogSci 2024); Chen e colegas, Misleading ChartQA (EMNLP 2025, arXiv 2503.18172); Moritz e colegas (IEEE VIS 2023); Savalia e colegas (IEEE VIS 2025); Fernandes e colegas (CHI 2018); Hofman, Goldstein e Hullman (CHI 2020); Xiong, Lee-Robbins, Zhang, Gaba e Franconeri (IEEE TVCG 30(7), 2024); guias de gráficos do UK Analysis Function, ONS e IBM Carbon.
Catálogo: quarenta tipos de gráfico, cada um com a pergunta que responde
A hierarquia da percepção diz como escolher; este catálogo mostra o que escolher. São quarenta tipos, organizados em cinco famílias pela pergunta que respondem, e cada um traz quatro coisas: a pergunta, a codificação visual que o leitor usa para ler (posição, comprimento, área, cor), o caso em que a forma engana, e um exemplo desenhado com dados hipotéticos tirados do dia a dia deste portal: leads por canal, citações em assistentes de IA, taxa de resposta por segmento, funil, roteiro de 90 dias. Todo exemplo é SVG inline, com cor vinda dos tokens da página, e por isso troca de tema com o site. Logo abaixo de cada figura, um bloco fechado traz a receita de construção na biblioteca indicada e a tabela com os mesmos dados, que é a alternativa textual que a seção sobre acessibilidade exige.
Sobre os números: todos os valores das quarenta figuras são inventados para ilustrar a forma, e a legenda de cada uma repete o aviso. Nenhum deles descreve a operação real da Leadlovers nem de cliente algum; ao reutilizar um formato, troque a série pela sua e mantenha a fonte, a data e o dono visíveis, como a seção seguinte cobra.
Comparar categorias
Quando a pergunta é qual é maior ou quem ficou na frente, o olho compara comprimento numa escala comum, a leitura mais precisa da hierarquia de Cleveland e McGill. Todos os tipos desta família ordenam os dados pela resposta, e nunca por ordem alfabética.
1. Barra ordenada
Responde: qual canal trouxe mais leads no mês, do maior para o menor. Codificação: comprimento numa escala comum, uma barra por categoria, ordem decrescente. Quando evitar: com mais de quinze categorias vira lista; corte para as dez maiores e agrupe o resto em outros.
Leads por canal de origem em agosto. A barra dos assistentes de IA já é a segunda, e a ordem responde a pergunta antes de qualquer rótulo. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Ordene a série pelo valor antes de passar para a biblioteca: nenhuma delas ordena sozinha. Use barra horizontal quando o nome da categoria tem mais de duas palavras, porque o rótulo cabe inteiro à esquerda. O valor vai escrito na ponta da barra, e o eixo numérico pode sumir.
Responde: como duas ou três séries se comparam dentro de cada período, e-mails enviados contra abertos, mês a mês. Codificação: comprimento, com as barras de um mesmo período lado a lado. Quando evitar: com mais de três séries por grupo o olho perde a comparação; troque por small multiples.
Disparos de e-mail enviados e abertos, por mês. A distância entre as colunas mostra a diferença de volume; a taxa de abertura deste exemplo é o número de abertos dividido pelo de enviados. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Mantenha a mesma cor para a mesma série em todos os grupos e coloque a legenda no topo, onde o olho começa. Se a pergunta for a taxa em si, use linha com meta em vez desta forma.
Responde: quanto cada segmento soma no total e como o total muda ao longo do tempo. Codificação: comprimento para o total; a divisão interna se lê por comparação de segmentos, menos precisa. Quando evitar: quando a pergunta é a evolução de um segmento do meio da pilha: só a base e o total se leem bem.
Contatos por estágio ao fim de cada mês: MQL, SQL e cliente são grupos exclusivos neste exemplo. Cada contato entra apenas no estágio atual, permitindo somar as faixas sem dupla contagem. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Ponha na base a série que mais importa, porque ela é a única que se lê contra uma linha reta. Escreva o valor dentro do segmento quando houver altura para 14 px de texto, e omita quando não houver.
Responde: como o mix muda de período para período quando o total pouco importa: a fatia dos assistentes de IA no tráfego, trimestre a trimestre. Codificação: comprimento relativo dentro de uma barra de tamanho fixo. Quando evitar: quando o leitor precisa do valor absoluto: a barra esconde se o total cresceu ou encolheu.
Participação de cada origem nas sessões do portal, por trimestre. A faixa dos assistentes de IA passa de um dígito para um quinto do total. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Normalize os dados antes, dividindo cada valor pelo total do período, e escreva a porcentagem dentro de cada faixa. Exiba o total absoluto do período no rótulo do eixo, para que a normalização não esconda a queda de volume.
Receita em ECharts:
const bruto = { Organico:[52,48,44,40], IA:[6,10,15,21], Pago:[30,30,29,27], Email:[12,12,12,12] };
// normaliza por coluna antes de desenhar
const total = i => Object.values(bruto).reduce((s, v) => s + v[i], 0);
series: Object.entries(bruto).map(([nome, v]) => ({
name: nome, type: 'bar', stack: 'mix',
data: v.map((x, i) => +(x / total(i) * 100).toFixed(1)),
label: { show: true, formatter: p => p.value + '%' }
}))
Trimestre
Orgânico
IA
Pago
E-mail
4º tri 25
52%
6%
30%
12%
1º tri 26
48%
10%
30%
12%
2º tri 26
44%
15%
29%
12%
3º tri 26
40%
21%
27%
12%
5. Barra divergente
Responde: quais indicadores ficaram acima e quais abaixo da meta, e por quanto, numa só tela. Codificação: comprimento a partir de um zero central; a cor só reforça o lado, porque o lado já diz tudo. Quando evitar: quando os indicadores têm unidades diferentes sem normalizar: a comparação vira ilusão.
Desvio de seis indicadores em relação à meta de agosto, em pontos percentuais. A direita indica valor acima da meta; a esquerda, abaixo. A direção desejável depende do indicador: reduzir cancelamentos, por exemplo, é favorável. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Calcule os desvios com uma unidade comum. Neste exemplo, diferenças entre taxas usam pontos percentuais. O zero representa a meta; ordene os valores e indique, para cada métrica, se o resultado desejado é aumentar ou diminuir.
Responde: como dois grupos se distribuem pela mesma escala: respostas por hora antes e depois do robô de atendimento. Codificação: comprimento para cada lado de um eixo central compartilhado. Quando evitar: quando os dois lados têm escalas diferentes: o espelho só funciona com a mesma régua.
Respostas a leads por faixa de horário, antes e depois de ligar o robô que responde preço como pessoa. O volume noturno aumenta: às 18h passa de 15 para 29 respostas e às 20h, de seis para 24. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Use a mesma escala nos dois lados e escreva o valor na ponta de cada barra. Em ECharts, o lado esquerdo é uma série com valores negativos e rótulo formatado em valor absoluto.
Responde: o mesmo que a barra ordenada, com menos tinta: ranking de artigos por citações em assistentes de IA. Codificação: posição do ponto numa escala comum; a haste só liga o rótulo ao valor. Quando evitar: quando as diferenças entre valores são pequenas: a haste fina esconde o que a barra cheia mostraria.
Citações que cada artigo do menu Artigos recebeu em respostas de assistentes no mês. O ponto na ponta lê-se por posição, e a lista longa fica leve. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Desenhe uma linha do zero ao valor e um círculo na ponta. Em Observable Plot são duas marcas sobre os mesmos dados; em ECharts, uma série de barras finas e uma de dispersão sobrepostas.
Responde: como três assistentes citam o portal em cada segmento, sem a tinta de dezoito barras. Codificação: posição de cada ponto numa linha por categoria, um ponto por série. Quando evitar: quando dois pontos caem no mesmo valor e se escondem: desloque-os ou volte para as colunas agrupadas.
Percentual de respostas em que cada assistente cita o portal, por segmento do menu Segmentos. Cada linha compara três pontos; a linha inteira compara os segmentos. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Uma linha fina por categoria, um ponto por série na mesma linha, legenda no topo. É o formato de Cleveland para muitas categorias e poucas séries.
Responde: quanto cada segmento mudou entre dois momentos: taxa de resposta em uma hora antes e depois do robô. Codificação: posição dos dois pontos e comprimento do traço entre eles. Quando evitar: com mais de dois momentos: aí é slope chart ou linha.
Percentual de leads respondidos em até uma hora, por segmento, antes e depois de ligar o robô. O comprimento do traço é o ganho, e é ele que se compara. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Um segmento neutro liga os dois pontos; o ponto do momento mais recente ganha a cor de destaque. O rótulo escreve os dois valores, porque a pergunta é a diferença.
Responde: quem subiu e quem desceu entre dois períodos: share of voice generativo por marca, antes e depois da onda de conteúdo. Codificação: inclinação de cada reta entre duas colunas; posição nas pontas. Quando evitar: com muitas categorias as retas se cruzam num novelo; limite a oito e destaque as que importam.
Recorte de cinco marcas nas respostas de assistentes sobre automação de marketing, em dois trimestres. As demais marcas não estão desenhadas, por isso as participações exibidas não somam o total. As retas mostram a mudança no período, sem atribuir causa à onda de conteúdo. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Duas colunas de valores e uma reta por categoria. Cor verde para quem subiu e rosa para quem caiu, com o nome escrito nas duas pontas para dispensar legenda.
Responde: como o ranking mudou mês a mês: a posição do portal entre as fontes mais citadas pelos assistentes. Codificação: posição vertical discreta (1º, 2º, 3º) ligada por linhas ao longo do tempo. Quando evitar: quando o valor por trás do ranking importa mais que a ordem: primeiro por um ponto e primeiro por trinta são a mesma linha aqui.
Posição mensal de quatro marcas no ranking de fontes que os assistentes citam ao falar de automação de marketing. As linhas trocam de lugar; o rótulo dentro do ponto diz a posição. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Eixo vertical invertido, com o primeiro lugar no topo, linhas grossas e um círculo com o número da posição em cada mês. Nome da série nas duas pontas, sem legenda.
A linha responde para onde está indo. A meta desenhada na própria escala transforma a curva em julgamento, e o rótulo direto na ponta da série dispensa a legenda que obriga o olho a ir e voltar.
12. Linha com meta
Responde: a taxa de abertura semanal está acima ou abaixo do combinado, e há quanto tempo. Codificação: posição ao longo de uma escala comum; a meta é uma linha de referência tracejada. Quando evitar: com menos de cinco pontos: aí a linha sugere continuidade que os dados não têm, e as colunas dizem a verdade.
Taxa de abertura dos disparos de e-mail por semana, com a meta de 35% tracejada. A curva cruza a meta na sétima semana e permanece acima dela até o fim do período. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Nesta figura o eixo parte do zero por escolha de leitura; a forma em linha não exige isso. Linha pode começar acima de zero quando o eixo escreve onde começa e o corte parte de um número redondo; barra e área partem sempre do zero (veja título, eixo e escala). A meta entra como markLine com rótulo na ponta direita. Rotule a série na ponta direita; a legenda flutuante fica de fora.
Responde: como quatro assistentes evoluem em citações do portal, lado a lado e sem legenda. Codificação: posição em escala comum, uma linha por série, nome na ponta direita. Quando evitar: com mais de cinco séries as linhas se cruzam num novelo; passe para small multiples.
Citações mensais do portal em quatro assistentes. O rótulo na ponta de cada linha responde quem é quem sem obrigar o olho a subir até a legenda. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Limite a cinco séries, distinga cada uma também pelo marcador ou pelo tracejado, e escreva o nome na ponta. Em ECharts o endLabel faz isso; em Plot, uma marca de texto no último ponto.
Responde: o que aconteceu no ponto em que a curva mudou: sessões semanais com os eventos que as explicam. Codificação: posição na escala comum mais anotações ancoradas nos pontos de inflexão. Quando evitar: quando as anotações são mais que quatro: o gráfico vira texto e o texto vira gráfico ruim.
Sessões semanais do portal, em milhares, com as duas publicações que explicam os degraus: o menu Segmentos na quinta semana e as aulas em vídeo na nona. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
A anotação vive nos dados: cada evento é um ponto com data e texto, e a biblioteca o posiciona. Assim a anotação sobrevive ao filtro de período.
Responde: quantos leads esperavam na fila de atendimento em cada momento, valores que mudam aos saltos e ficam estáveis entre eles. Codificação: posição, com segmentos horizontais que só sobem ou descem quando o valor muda. Quando evitar: para série que varia continuamente, como receita: o degrau inventa patamares que não existem.
Leads aguardando resposta ao longo de um dia. O valor só muda quando um lead entra ou sai, e o degrau mostra isso; uma linha inclinada mentiria sobre o meio da hora. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Use a opção de degrau da biblioteca com o valor mantido até a próxima mudança. Serve para estoque, fila, plano contratado e preço: tudo que é constante entre eventos.
Responde: quanto se acumulou até aqui: receita acumulada no ano, em que o volume sob a curva tem significado. Codificação: posição da borda superior; a área preenchida reforça a noção de acúmulo. Quando evitar: para uma proporção ou uma taxa: preencher a área sugere volume que não existe.
Receita acumulada de janeiro a agosto, em milhares de reais. A área faz sentido porque o acumulado é uma soma, e a inclinação de cada trecho é o ritmo do mês. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Preencha com a cor da série a 20% de opacidade e mantenha a linha na borda. Eixo no zero, sempre: área com eixo cortado é a distorção mais comum em relatório.
Responde: como o total de sessões cresce e qual origem puxa o crescimento. Codificação: comprimento vertical de cada faixa somado; só a faixa da base e o total se leem com precisão. Quando evitar: quando a pergunta é a evolução de uma faixa do meio: ela ondula com as de baixo. Para isso, linhas separadas.
Sessões mensais por origem, em milhares, somadas. O total passa de 43 mil em janeiro para 72 mil em agosto, aumento de 67,4%; a origem assistentes de IA apresenta o maior crescimento absoluto, de três para 22 mil. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Ponha na base a origem mais estável, para que as outras não ondulem por causa dela, e a que mais cresce logo acima. Rotule cada faixa na ponta direita.
Responde: o painel de uma página: o número de agora, a variação contra o período anterior e a forma dos últimos oito meses, num cartão por indicador. Codificação: número grande para o valor, cor e sinal para a variação, posição em miniatura para a tendência. Quando evitar: quando o cartão tenta mostrar mais de um número principal: aí já virou gráfico.
Quatro cartões do painel de uma página: leads, resposta em uma hora, custo por lead e citações. A sparkline não tem eixo de propósito; ela diz a forma, e o número diz o valor. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
O cartão é HTML; só a sparkline é SVG, sem eixo nem grade, com um ponto marcando o último valor. A variação usa sinal e cor, e o denominador (contra o quê) vai escrito no rótulo.
Reporte executivo vive de três perguntas: batemos a meta, de onde veio a diferença e quanto cada parte pesa. Cada uma tem uma forma que responde no primeiro olhar e uma forma popular que a esconde.
19. Bullet chart
Responde: meta contra realizado, com as faixas de ruim, aceitável e bom, em um décimo do espaço de um velocímetro. Codificação: comprimento da barra fina contra a posição do traço da meta; as faixas de fundo dão o contexto. Quando evitar: nunca, dentro do portal: ele substitui o velocímetro em todos os casos.
Três indicadores de agosto. A barra fina é o realizado, o traço vertical é a meta e as três faixas de fundo, a partir do zero, marcam ruim, aceitável e bom; o rótulo à direita escreve realizado e meta. SQL passou; os outros dois não. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Três camadas por linha: faixas de fundo em tons neutros, barra fina do realizado e traço da meta. Em ECharts monta-se com barras empilhadas de fundo e markLine; em SVG à mão são cinco retângulos e uma linha por indicador.
Responde: de onde veio a diferença entre o número de partida e o de chegada: de leads brutos a qualificados, perda a perda. Codificação: comprimento de cada degrau, flutuando a partir do acumulado anterior. Quando evitar: com mais de oito degraus: agrupe os pequenos em outros antes de desenhar.
Do total de leads brutos ao total qualificado. Cada degrau que desce é uma perda, o único degrau que sobe é o que a régua de reativação recuperou, e as duas barras que partem do zero são os totais; o sinal escrito sobre cada degrau confirma a direção. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Cada degrau é uma barra invisível de apoio (o acumulado anterior) mais uma barra visível com o valor. Em ECharts, uma série transparente empilhada com a série real.
Responde: quais poucas causas explicam a maior parte dos carrinhos abandonados, e onde parar de investigar. Codificação: comprimento das barras ordenadas mais a posição da linha acumulada, com a marca dos 80%. Quando evitar: quando as causas não são mutuamente exclusivas: a soma acumulada deixa de fazer sentido.
Motivos de abandono de carrinho numa loja hipotética do hub de comércio eletrônico. As três primeiras causas acumulam 75,5% dos 950 carrinhos; com a quarta, o acumulado chega a 85,8% e ultrapassa a referência de 80%. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Ordene as causas, calcule o acumulado em porcentagem e desenhe-o numa segunda escala à direita, com o nome escrito por extenso no topo do eixo: acumulado do total, de zero a cem por cento. A linha de 80% é uma referência tracejada, e a leitura é: pare onde a curva a cruza.
O Pareto é a única exceção deste guia ao veto de eixo duplo, e a justificativa precisa estar no próprio gráfico. As duas escalas medem a mesma grandeza, carrinhos abandonados, uma em contagem por motivo e outra em proporção acumulada do mesmo total, e a da direita sempre vai de zero a cem. Duas grandezas diferentes no mesmo plano, como receita e taxa de conversão, continuam fora: viram dois gráficos alinhados pelo mesmo eixo de tempo (veja título, eixo e escala).
Responde: qual segmento foge do padrão: a mesma métrica, na mesma escala, num painel pequeno por segmento. Codificação: posição em escalas idênticas repetidas; a exceção salta porque tudo o mais é igual. Quando evitar: com escalas diferentes por painel: aí a comparação some e o formato perde a razão de existir. Também com painéis demais: no experimento de Hosseinpour, Matzen, Divis, Castro e Padilla (IEEE TVCG, 2025), com 2 a 70 painéis, o acerto caiu de forma linear a cada painel acrescentado, nas sete tarefas testadas; destacar o painel que diverge atenuou a perda. Prefira poucos painéis e marque a exceção com cor e rótulo.
Taxa de conversão de lead em cliente, de março a agosto, um painel por segmento, com a meta de 2,5% tracejada. Eventos cai e restaurantes patina; os outros sobem. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Gere um gráfico por categoria com a mesma escala fixa, em grade de três colunas. Em Plot, a faceta faz isso numa linha; em ECharts, uma grid por painel com o mesmo eixo.
Aqui a pergunta muda de quanto para como se comporta: duas medidas andam juntas, os valores se concentram ou se espalham, o teste A/B tem margem de erro. São os gráficos que o time de mídia e o de experimentação usam para investigar.
23. Dispersão
Responde: se duas medidas andam juntas: posição média na busca contra taxa de clique, artigo a artigo. Codificação: posição em duas escalas ao mesmo tempo, um ponto por observação. Quando evitar: com mais de duas mil observações: os pontos viram mancha; use densidade ou canvas.
Cada ponto é um artigo do portal: posição média na busca no eixo horizontal, taxa de clique no vertical. A relação é a curva que se vê, sem que ninguém a desenhe. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Um ponto por observação, rótulo direto quando são poucas, e escalas que começam onde os dados fazem sentido. Nunca conecte os pontos: dispersão não tem ordem.
Responde: três medidas de uma vez: leads, conversão e receita por canal, com a receita no tamanho da bolha. Codificação: posição em duas escalas para as duas medidas principais; área da bolha para a terceira, que se lê com menos precisão. Quando evitar: quando a terceira medida é a mais importante: área se compara mal, e ela merece o eixo.
Canais de origem: leads no eixo horizontal, conversão no vertical e receita na área das bolhas. Busca orgânica reúne mais leads e receita; indicação apresenta a maior taxa de conversão. E-mail tem conversão maior que busca orgânica, com menos leads, mostrando a troca entre volume e taxa. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Escale o raio pela raiz quadrada do valor, para que a área seja proporcional ao valor. Bolha grande demais esconde a vizinha, então limite o raio máximo e use opacidade.
Receita em ECharts:
series: [{ type: 'scatter', data: canais.map(c => [c.leads, c.conversao, c.receita, c.nome]),
symbolSize: d => 60 * Math.sqrt(d[2] / 92), // diâmetro; 92 é a maior receita da série
itemStyle: { opacity: 0.75 },
label: { show: true, formatter: p => p.data[3], position: 'right' } }]
Canal
Leads
Conversão
Receita (R$ mil)
Busca orgânica
1.840
2,1%
92
Assistentes de IA
1.120
3,4%
74
E-mail
960
4,6%
48
Instagram
610
1,4%
12
Anúncios
540
2,8%
40
Indicação
210
6,1%
32
25. Dispersão conectada
Responde: como duas medidas evoluíram juntas ao longo do tempo: custo de aquisição contra valor do cliente, trimestre a trimestre. Codificação: posição em duas escalas, com os pontos ligados na ordem do tempo e o rótulo do período em cada um. Quando evitar: quando a trajetória se cruza várias vezes: aí duas linhas no tempo contam a história com mais clareza.
Custo de aquisição no eixo horizontal e valor do cliente no vertical, sete trimestres ligados na ordem. A curva primeiro vai para a direita (custo sobe) e depois volta para a esquerda enquanto sobe: a direção que se quer. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Ordene os pontos pelo tempo, desenhe a linha e depois os pontos, com o período escrito em cada um. Uma seta na ponta diz a direção do tempo.
Responde: como o tempo de resposta ao lead se distribui: a maioria responde em quanto tempo, e quão longa é a cauda. Codificação: comprimento de barras contíguas, uma por faixa de valor de largura igual. Quando evitar: com faixas de largura desigual sem ajustar a altura pela largura: a barra larga engana.
Tempo até a primeira resposta a cada lead, em minutos, em faixas. A maior parte cai antes de 30 minutos e a cauda se arrasta até duas horas: é a cauda que o robô veio cortar. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Escolha faixas de largura igual, conte as observações em cada uma e desenhe barras coladas, sem espaço, porque o eixo é contínuo. Em Plot, a marca de bin faz a contagem.
Responde: como o ticket varia dentro de cada segmento, além da média: mediana, quartis e extremos lado a lado. Codificação: posição da mediana e comprimento da caixa (metade central dos valores); as hastes vão até os extremos. Quando evitar: para leitor leigo sem legenda: a caixa precisa de uma frase explicando o que cada traço é.
Ticket por venda, em reais, por segmento. O traço que corta cada caixa é a mediana, a caixa guarda a metade central e as hastes vão até os extremos. Imobiliárias têm a caixa mais alta e a mais espalhada. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Calcule mínimo, primeiro quartil, mediana, terceiro quartil e máximo por grupo e passe os cinco números. Escreva ao lado o que a caixa significa, numa frase, para quem nunca viu uma.
Responde: cada tempo de resposta individual por atendente, quando as observações são poucas o bastante para mostrar todas. Codificação: posição de cada ponto numa linha por categoria; o traço vertical é a mediana. Quando evitar: com centenas de pontos por linha: viram mancha, e o box plot ou o histograma assumem.
Tempo de cada resposta, em minutos, por atendente e pelo robô, com a mediana em traço. O robô responde em minutos e a variação humana aparece ponto a ponto. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Um ponto por observação na linha da categoria, com um pequeno deslocamento vertical quando dois caem no mesmo valor. A mediana entra como traço para dar a referência.
Responde: qual é a estimativa de cada variante e a incerteza associada a ela, diante de um valor de referência. Codificação: posição do ponto e comprimento do intervalo. Quando evitar: quando os intervalos não foram calculados com método definido. Comparar o intervalo de uma variante com um ponto do controle não substitui o teste da diferença entre os grupos.
Conversão estimada de três variantes de landing com intervalo de confiança de 95%, contra o controle em 3,4%. Os dois primeiros intervalos ficam inteiramente à direita do valor de referência do controle. Essa comparação visual não testa a diferença entre os grupos. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Calcule a estimativa e os limites do intervalo pelo método adequado ao desenho do estudo. Represente o intervalo como traço com um ponto para a estimativa e identifique o controle tracejado como valor de referência. Para concluir sobre a diferença entre grupos, use o intervalo ou teste da própria diferença, considerando também a incerteza do controle.
Quando as duas dimensões são categorias, a posição vira uma grade e o valor vira intensidade de cor. Cor se lê com pouca precisão, então o número vai escrito na célula sempre que couber.
30. Mapa de calor
Responde: em que dia e hora as pessoas abrem o e-mail, para escolher a janela de disparo. Codificação: intensidade de cor numa grade de dia por hora, com o número na célula. Quando evitar: quando a escala de cor não é sequencial de um tom só: arco-íris embaralha a ordem dos valores.
Taxa de abertura por dia e horário: cada célula representa cem envios hipotéticos. Terça às 10h tem 16 aberturas em cem envios, ou 16%. As taxas usam bases separadas e não somam 100%. A comparação sugere horários a testar; não demonstra que mudar o disparo causará mais aberturas. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Use uma escala sequencial de um tom (a cor da marca com opacidade crescente), escreva o valor em cada célula e ajuste a cor do texto ao fundo. Em ECharts o visualMap cuida da escala.
Responde: em que dias o portal publicou, e se o ritmo se manteve: uma célula por dia, dezesseis semanas. Codificação: intensidade de cor numa grade de semana por dia da semana. Quando evitar: para valores que precisam ser lidos com precisão: o calendário mostra ritmo; a quantidade exata fica para a tabela.
Publicações do portal por dia, em dezesseis semanas. As colunas são semanas e as linhas, os dias. Os fins de semana têm menos publicações, com alguns dias registrando uma; as três células de maior intensidade guardam os maiores valores, conferíveis na tabela. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Cada dia vira uma célula posicionada pela semana e pelo dia da semana, com a cor pela contagem. Em ECharts o calendar coordinate system monta a grade a partir das datas.
Responde: de onde vêm os leads no país, sem que São Paulo esmague os estados pequenos como faria num mapa real. Codificação: posição aproximada da geografia em blocos iguais; intensidade de cor e número escrito para o valor. Quando evitar: quando a área real importa (cobertura de entrega, por exemplo): aí é mapa coroplético de verdade.
Leads de agosto por estado, em blocos do mesmo tamanho dispostos como o mapa do Brasil. Cada estado tem o mesmo espaço para o número, e a cor diz a ordem de grandeza. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Cada unidade da federação recebe uma coluna e uma linha fixas numa grade, e o SVG desenha um quadrado por estado com a cor pelo valor. A grade é um arquivo JSON que se reaproveita em qualquer mapa do portal.
Receita em SVG à mão ou D3:
const grade = { SP: [4, 5], RJ: [5, 5], MG: [4, 4], PR: [3, 5], ... }; // coluna, linha
const cor = v => `color-mix(in oklch, var(--ll) ${Math.round(12 + 88 * v / maximo)}%, var(--ll-surface))`;
for (const [uf, [c, l]] of Object.entries(grade)) {
svg.append('rect').attr('x', c * 56).attr('y', l * 56).attr('width', 52).attr('height', 52).attr('fill', cor(leads[uf]));
svg.append('text').attr('x', c * 56 + 26).attr('y', l * 56 + 22).text(uf);
}
UF
Leads
SP
310
RJ
142
MG
128
PR
96
RS
88
SC
71
GO
62
BA
55
DF
47
PE
41
CE
38
ES
26
MT
24
PA
21
MS
18
MA
15
RN
14
AM
12
PB
11
PI
10
TO
9
RO
8
AL
7
SE
6
RR
4
AP
3
AC
3
33. Treemap
Responde: quanto cada família de segmentos pesa na receita, com o todo cabendo num retângulo. Codificação: área de cada retângulo; comparação imprecisa entre retângulos de formas diferentes, então o número vai escrito. Quando evitar: com mais de dois níveis de hierarquia ou retângulos pequenos demais para o rótulo: vira mosaico ilegível.
Receita do mês por família do menu Segmentos, em milhares de reais. A área diz o peso de cada família; o número escrito corrige a imprecisão da leitura por área. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Passe os dados como árvore e deixe a biblioteca calcular os retângulos com o algoritmo squarify. Rótulo com nome e valor dentro de cada retângulo, e nenhum retângulo sem rótulo.
Responde: quanto sobra em cada etapa do funil instrumentado, e qual etapa perde mais. Codificação: largura de cada faixa e a porcentagem escrita ao lado; a forma é convenção, e o número é a informação. Quando evitar: quando as etapas não são sequenciais ou o volume da base é muito maior que o topo: o desenho mente.
Do visitante ao cliente, com o volume de cada etapa e a passagem sobre a etapa anterior. A menor taxa de passagem é de visitante a lead, etapa a investigar. O desenho não demonstra que reduzir o formulário a três campos aumentaria a conversão. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Escreva o valor e a taxa de passagem em cada etapa, porque a largura se lê mal. Considere trocar por barras ordenadas quando o leitor precisa comparar as passagens entre si.
Responde: de onde vem e para onde vai: qual origem de lead termina em cliente, em negociação ou perdido. Codificação: largura de cada fluxo proporcional ao volume, entre nós de origem e de destino. Quando evitar: com mais de duas colunas e dez nós: os fluxos se cruzam e o gráfico vira novelo.
Leads de três origens e o desfecho de cada um. A largura de cada fita é o volume; a fita mais grossa que chega a cliente sai da busca orgânica, e a proporção dos assistentes de IA é a melhor. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Passe os nós e os elos com valor, e a biblioteca calcula a posição e a largura. Limite a duas ou três colunas e ordene os nós para cruzar o mínimo de fitas.
Responde: o roteiro de 90 dias em seis quinzenas: o que começa quando, o que já andou e onde está o hoje. Codificação: posição e comprimento das barras numa escala de tempo; o preenchimento é o progresso. Quando evitar: para plano com dezenas de tarefas dependentes: aí é ferramenta de projeto.
Seis frentes do roteiro de 90 dias em seis quinzenas. Em cada frente, o trecho preenchido a partir do início é o feito e o restante da barra é o previsto; a linha vertical marca o hoje, e o trecho previsto que ficou à esquerda dela está atrasado. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Cada tarefa é uma barra flutuante de início a fim, com uma segunda barra sobreposta para o progresso. Em ECharts, série custom com renderItem; em SVG à mão, dois retângulos por linha.
Responde: de cada cem leads, quantos viram cliente: a proporção contada em unidades que o leigo entende. Codificação: contagem de quadrados numa grade de dez por dez; cada quadrado vale um por cento. Quando evitar: para proporções com casas decimais ou mais de quatro categorias: a grade não tem resolução para isso.
De cada 100 leads do mês: 8 viram clientes, 23 seguem em negociação e 69 se perderam. Contar quadrados é mais honesto para o leitor leigo do que ler uma fatia. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Cem quadrados numa grade de dez por dez, preenchidos de baixo para cima na ordem das categorias. É um laço de cem retângulos em SVG, sem biblioteca.
Receita em SVG à mão ou D3:
const grupos = [['Clientes', 8, 'var(--ll)'], ['Negociação', 23, 'var(--ll-navy-head)'], ['Perdidos', 69, 'var(--neutral-ink)']];
let k = 0;
for (const [nome, n, cor] of grupos) for (let i = 0; i < n; i++, k++) {
const linha = Math.floor(k / 10), coluna = k % 10;
svg.append('rect').attr('x', coluna * 22).attr('y', (9 - linha) * 22).attr('width', 19).attr('height', 19).attr('rx', 3).attr('fill', cor);
}
Desfecho
Em cada 100 leads
Viram clientes
8
Ficaram em negociação
23
Sem resposta ou perdidos
69
38. Rosca de até três fatias
Responde: uma comparação simples de parte contra o todo, com o total escrito no meio. Codificação: ângulo e área, que dificultam comparar valores próximos; o guia recomenda até três fatias e porcentagens escritas. Quando evitar: com quatro fatias ou mais, ou para comparar dois períodos: barra ordenada ou barras 100% empilhadas. Se a rosca ficar, marque no círculo as referências de um quarto, metade e três quartos, porque a leitura se apoia em arco e área (Skau e Kosara, 2016) e âncoras ajudam a estimar a parte (Bailey e Gleicher, IEEE VIS 2025, conhecido aqui só pelo resumo). Em relance numa tela minúscula, como a de um relógio, rosca com poucas partes foi lida rápido, e a barra radial foi a mais lenta (Blascheck e colegas, IEEE TVCG, 2019).
Leads do mês por situação no CRM: com dono, sem dono e duplicados. Três fatias, porcentagem escrita e o total no centro seguem a recomendação de simplificação deste guia. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Comece a primeira fatia no topo, no sentido horário, escreva a porcentagem e o valor na legenda e ponha o total no buraco da rosca. Passou de três fatias, mude de forma.
Responde: o valor exato de cada indicador contra o plano e contra o período anterior, em uma linha por indicador. Codificação: número em algarismos tabulares alinhados à direita; a barra pequena na célula dá a direção e o tamanho do desvio sem tirar o número. Quando evitar: quando a pergunta é de forma (tendência, sazonalidade): aí o gráfico ganha da tabela.
Indicador
Realizado
Plano
Julho
Contra o plano
Contra julho
Leads
5.280
5.000
4.870
+5,6%
+8,4%
MQL
3.010
3.200
2.790
−5,9%
+7,9%
SQL
1.240
1.150
1.010
+7,8%
+22,8%
Clientes
410
400
352
+2,5%
+16,5%
Receita nova (R$ mil)
168
200
149
−16,0%
+12,8%
Cinco indicadores de agosto contra o plano e contra julho. O número é o que o executivo confere; a barra na célula mostra o desvio sem que ele precise calcular. Exemplo hipotético com números inventados para mostrar o formato.
Como construir e dados da figura
É uma tabela HTML com font-variant-numeric em tabular-nums e alinhamento à direita nas colunas numéricas. A barra é um span com largura proporcional ao desvio e cor pelo sinal, e a tabela responde a leitor de tela como qualquer outra.
Responde: duas proporções de uma vez: quanto cada segmento pesa no volume de leads (largura) e como converte (altura). Codificação: largura de cada coluna para o volume e altura das faixas para a composição; leitura por área, então tudo vai escrito. Quando evitar: quando o leitor não teve uma frase de explicação: é o formato que mais precisa de legenda em prosa.
Cinco segmentos: a largura da coluna é o volume de leads e as faixas são a proporção de clientes, negociação e perdidos. Contabilidade é estreita e converte bem; restaurantes, o oposto. Exemplo hipotético com números inventados para mostrar o formato.Como construir e dados da figura
Calcule a largura de cada coluna pelo volume e a altura de cada faixa pela porcentagem. Poucas bibliotecas trazem o tipo pronto; em SVG à mão são dois laços de retângulos, e o número escrito em cada faixa é obrigatório.
Receita em SVG à mão ou D3:
let x = 0; const total = segs.reduce((s, d) => s + d.leads, 0);
for (const seg of segs) {
const w = largura * seg.leads / total; let y = 0;
for (const [nome, pct] of seg.faixas) {
const h = altura * pct / 100;
svg.append('rect').attr('x', x).attr('y', y).attr('width', w).attr('height', h).attr('fill', cor[nome]).attr('stroke', 'var(--ll-surface)');
svg.append('text').attr('x', x + w / 2).attr('y', y + h / 2).text(pct + '%');
y += h;
}
x += w;
}
Segmento
Leads
Cliente
Negociação
Perdido
Dentistas
1.240
9%
26%
65%
Restaurantes
980
5%
18%
77%
Imobiliárias
760
11%
31%
58%
Academias
640
7%
22%
71%
Contabilidade
410
12%
28%
60%
Regra da casa: antes de desenhar, escolha a família pela pergunta e o tipo pela codificação mais precisa que a pergunta permite, na ordem posição, comprimento, ângulo, área e cor. Quando dois tipos empatam, vence o que cabe em menos tinta. E todo gráfico publicado sai com a tabela dos dados por perto, porque é ela que o leitor de tela lê e o revisor confere.
SVG ou canvas: o custo de cada pixel
SVG e canvas são duas opções frequentes de renderização. Em SVG, barras, linhas e rótulos podem ser elementos do DOM: recebem estilos por CSS, preservam nitidez ao ampliar e permitem semântica acessível quando o gráfico é marcado corretamente. Em canvas, o desenho é um bitmap, útil para séries densas; tokens de cor podem ser lidos por JavaScript e aplicados ao desenho. O bitmap, por si só, não oferece texto selecionável nem expõe os dados ao leitor de tela. O limite de desempenho depende do dispositivo, da quantidade de elementos e das interações.
A recomendação do guia de diagramas se aplica aos dados: comece com SVG em figuras editoriais e painéis de leitura; avalie canvas quando a densidade ou a atualização justificarem a escolha. Teste a carga real antes de migrar. Nos gráficos críticos do portal, publique um resumo com a conclusão e uma tabela equivalente em HTML, independentemente do formato. O ECharts oferece os dois renderizadores, permitindo reaproveitar a configuração compatível. O manual do ECharts recomenda canvas acima de cerca de mil elementos e lembra que o SVG gasta menos memória, o que pode favorecê-lo em Android de entrada; trate o número como experiência relatada pelo projeto e confirme no aparelho do seu público.
Uma biblioteca por projeto: a régua de setembro de 2026
Escolha uma biblioteca principal para manter paleta, tipografia, tooltip e animação consistentes. A tabela compara cenários de uso e recursos consultados em setembro de 2026. Uma segunda biblioteca requer um caso que a primeira não cubra e uma justificativa de manutenção.
Biblioteca
Quando escolher
Estado verificado (set/2026)
Apache ECharts
Primeira tentativa para painel operacional: filtro, zoom, série longa, atualização frequente.
A versão 6.0, publicada em 30/07/2025, trouxe o sistema de coordenadas matrix, o diagrama de acordes (chord), a dispersão com jitter para beeswarm, o eixo quebrado, a troca de tema em tempo de execução com setTheme e um tema padrão novo. A 6.1, publicada em 19/05/2026, mudou o segundo argumento de tooltip.valueFormatter para rawDataIndex e deixou de tratar axis.startValue como mínimo do eixo. Desenha em SVG ou canvas com a mesma option; o manual recomenda canvas acima de cerca de mil elementos e registra que o SVG gasta menos memória e pode ir melhor em Android de entrada.
Observable Plot / visx
Figura editorial em página de conteúdo: SVG leve, estilizado por token, sem runtime pesado.
Plot segue a gramática concisa da equipe do D3; visx entrega primitivas D3 para quem monta biblioteca própria em React.
Chart.js
Protótipo e relatório leve em canvas, quando a tela pede seis gráficos comuns e nenhuma sofisticação.
Tipos comuns e configuração para prototipar a tela; em canvas, acompanhe o gráfico com uma alternativa textual.
ApexCharts
Painel investigativo sem trocar de biblioteca: anotação, medição e filtro cruzado prontos.
A versão 6, de julho de 2026, ampliou anotações, medição, filtros cruzados e histórico de ações. A versão 7.0, de 25/08/2026, tornou nove recursos importações opcionais e trouxe mudanças de migração; confira módulos e licença antes de atualizar.
Recharts / MUI X Charts
Projeto React que quer gráfico como componente, com recursos de acessibilidade integrados.
No Recharts 3.0, o guia de migração registra que accessibilityLayer passou a vir ligado por padrão; MUI X Charts v9, de 08/04/2026, traz navegação por teclado ligada por padrão.
uPlot
Série temporal massiva em tempo real: telemetria, monitoramento, tick de mercado.
Cerca de 50 kB minificados, segundo o README consultado em 10/09/2026. Usa canvas e prioriza séries temporais; o próprio projeto recomenda atenção a streaming com mais de 100 mil pontos visíveis.
Lightweight Charts
Gráfico financeiro: candlestick, OHLC, profundidade de ofertas.
Biblioteca da TradingView, base de 35 kB na versão 5; caso especializado que nenhuma generalista cobre tão barato.
D3.js
Visualização sob medida com anotação e narrativa, quando o formato pedido não existe em catálogo.
Oferece primitivas para construir visualizações. Para gráficos comuns, compare o trabalho de composição e manutenção com uma biblioteca de componentes prontos.
Confira a licença para o uso previsto. O ApexCharts oferece Community para organizações elegíveis com receita anual inferior a US$ 2 milhões; outros usos podem exigir Commercial ou OEM, inclusive conforme as condições de redistribuição. O Highcharts exige licença comercial para uso comercial, e o MUI X possui recursos pagos. Registre a versão, o plano e as condições aplicáveis antes de integrar; a disponibilidade do código não garante licença permissiva.
Cor por token e os números da norma
No WebAIM Million 2026, a avaliação automática com WAVE de um milhão de páginas iniciais, realizada em fevereiro de 2026, encontrou falhas detectáveis de WCAG em 95,9% da amostra e texto com baixo contraste em 83,9%. A medição abrange páginas iniciais, sem estimar uma taxa específica para gráficos. Pela WCAG 2.2, textos comuns exigem contraste mínimo de 4,5:1, com a exceção de 3:1 para texto grande prevista no critério 1.4.3. O critério 1.4.11 exige 3:1 para elementos gráficos necessários à compreensão, e o 1.4.1 impede transmitir informação apenas pela cor.
A paleta do gráfico segue as variáveis do guia de tokens, com variantes conferidas para cada tema. OKLCH ajuda a ajustar as cores de forma perceptualmente mais uniforme, mas não garante contraste por si só. A função contrast-color(), em Baseline desde abril de 2026 segundo a MDN, escolhe preto ou branco para uma cor de referência. Mantenha uma alternativa para navegadores antigos e confira a legibilidade de textos pequenos, sobretudo em tons intermediários.
As cores têm origem nos tokens do projeto. Para a option do ECharts, resolva o token no JavaScript e passe uma cor aceita pelo renderizador. Se o token contém funções CSS, aplique-o a uma propriedade de cor e leia o valor com getComputedStyle(); atualize a paleta quando o tema mudar. Um valor concreto derivado do token preserva o sistema visual.
Rótulos e eixos com 4,5:1, formas com 3:1, conferidos no tema claro e no escuro.
Série distinguível sem cor: rótulo direto, marcador ou tracejado.
Fonte de eixo e rótulo com 14px ou mais; algarismos tabulares em qualquer coluna de número.
Além do contraste: o gráfico que todo mundo lê
A auditoria também precisa cobrir teclado, foco e leitor de tela. MUI X Charts v9 oferece navegação por teclado por padrão, e o Recharts 3.0 passou a ligar o accessibilityLayer por padrão; esses recursos ajudam, mas não validam toda a experiência. Cada gráfico crítico do portal deve trazer um resumo com a conclusão e uma tabela com os mesmos dados, como alternativa de leitura e conferência.
A WCAG 2.2 continua sendo a régua. O rascunho da WCAG 3, de 10/09/2026, diz que o algoritmo de contraste da nova versão "is yet to be determined", e o APCA, que chegou a constar do rascunho, saiu dele em julho de 2023; use o APCA só como conferência complementar. Os pontos abaixo cobrem o que a razão de contraste não mede.
Além do contraste: regra, fonte e como aplicar
Ponto
Regra
Como aplicar
Exceção do 1.4.11
A marca fica dispensada de 3:1 contra o fundo quando os rótulos e os valores estão escritos no gráfico ou numa tabela equivalente (Understanding WCAG 2.2, critério 1.4.11).
Use a exceção com a tabela visível ou a um clique; o rótulo escrito continua precisando de 4,5:1.
Partes vizinhas
Fatia, segmento empilhado e bloco de treemap encostados precisam de 3:1 entre si ou de um separador na cor do fundo.
A rosca do catálogo usa contorno de 3 pixels na cor da superfície entre as fatias.
Texto que cita cor ou forma
"A linha verde" ou "a barra escura" não chega a quem não vê a cor nem ao leitor de tela; o guia de cores do UK Analysis Function (atualizado em 12/02/2026) aplica o critério 1.3.3 da WCAG e pede que o texto não se apoie em cor nem em forma para apontar o gráfico.
Nomeie o elemento pelo que ele representa e pelo rótulo escrito no desenho: "a série dos assistentes de IA", "o traço rotulado como meta". Legenda que só casa cor com nome cai no mesmo problema; prefira rótulo direto.
Cores forçadas do Windows
Pela CSS Color Adjustment 1 (recomendação candidata de 16/12/2025), o SVG conserva fill e stroke do autor; só currentColor herda a cor do sistema, e canvas nunca se adapta.
Mapeie os papéis do gráfico para cores do sistema, como no trecho abaixo; reserve forced-color-adjust: none para peças pontuais, nunca para o gráfico inteiro.
Tritanopia
As matrizes de Machado, Oliveira e Fernandes (2009) servem para deuteranopia e protanopia; para tritanopia, a escolha válida é o método de Brettel, Viénot e Mollon (1997), segundo a análise do DaltonLens (2021).
Trate qualquer simulação como aproximação e confirme com pessoas; a oficina de paleta desta página aplica os dois métodos.
Paletas de referência
Okabe-Ito tem oito cores; Paul Tol publica a bright com sete e a muted com nove, e recomenda escala sequencial acima disso.
Parta de uma delas, ajuste a claridade aos dois temas do site e meça de novo.
Padrão no ECharts
O decal, padrão de preenchimento que distingue séries sem cor, vem desligado.
MUI X Charts v9: setas para a esquerda e a direita andam dentro da série, para cima e para baixo trocam de série. O Data Navigator (Elavsky, Nadolskis e Moritz, IEEE TVCG, 2024) monta essa navegação como lista, árvore ou grafo sobre qualquer renderização.
Adote o mesmo mapa de teclas em todos os gráficos do produto e anuncie valor, série e posição a cada passo.
O Chartability organiza a revisão por princípios de percepção, operação, compreensão e compatibilidade, seguindo o referencial POUR do W3C. Use o checklist para localizar barreiras e teste a interação com tecnologias assistivas. O Highcharts também oferece sonificação para representar tendências e padrões por áudio, como complemento à descrição e aos dados em texto.
A origem permite conferir o indicador antes de usá-lo em uma decisão. Os guias de medição do portal registram a escada de confiança do dado e o dono da métrica. Na tela, mantenha fonte e data de atualização junto do gráfico, o denominador de cada porcentagem explícito e o responsável pelo indicador acessível. A regra local dos dois cliques orienta o acesso à fonte, à definição, à atualização e ao responsável.
Registre filtro e período comparado na URL quando a visão precisar ser compartilhada, conforme o guia de navegação. Assim, a equipe abre o mesmo recorte do painel. Em React, nuqs oferece recursos para esse padrão; em qualquer stack, o critério de aceite é copiar a URL, abrir em outra máquina com a mesma permissão e encontrar a mesma seleção de dados.
Números, datas e estados: o que o gráfico escreve
Número de gráfico em português segue a convenção brasileira do começo ao fim: vírgula decimal, ponto de milhar, mês abreviado em minúsculas e unidade escrita. A APIIntl do navegador resolve quase tudo, e a saída real precisa ser conferida antes de virar regra, porque ela traz detalhes que o olho não vê. A tabela abaixo foi gerada no Node 25.4.0 em 08/10/2026, com a localidade pt-BR.
Saída real de Intl em pt-BR (Node 25.4.0, 08/10/2026) e o uso no gráfico
Chamada
Entrada
Saída
Onde usar
NumberFormat("pt-BR", { notation: "compact" })
1234 · 12500 · 3400000 · 5600000000
1,2 mil · 12,5 mil · 3,4 mi · 5,6 bi
Rótulo de eixo e cartão. Entre o número e "mil" vem um espaço inseparável (U+00A0); teste de texto que compara com espaço comum falha.
Não serve para eixo apertado. O rótulo curto "set/26" se monta à mão a partir do mês e do ano; a data completa vai na dica.
DateTimeFormat("pt-BR", { dateStyle: "long" })
15/09/2026
15 de setembro de 2026
Dica, tabela e linha de fonte. Na virada de mês ou de ano, o eixo ganha um rótulo-marco com o ano.
A tabela que acompanha o gráfico distingue zero de ausência com os sinais convencionais do IBGE, e eles valem para a tabela alternativa e para a exportação. A tabela de baixo transcreve o item 4.8.1 das Normas de apresentação tabular (IBGE, 3ª edição, 1993), que pede ainda uma nota geral explicando os sinais usados (item 4.8.2).
Sinais convencionais, item 4.8.1 das Normas de apresentação tabular (IBGE, 1993)
Sinal
Significado
No gráfico
-
Dado numérico igual a zero não resultante de arredondamento
Desenha zero.
..
Não se aplica dado numérico
Não desenha; a nota explica por quê.
...
Dado numérico não disponível
Lacuna visível, sem interpolar os vizinhos.
x
Dado omitido a fim de evitar a individualização da informação
Não desenha e não entra em total que permita deduzi-lo.
0 · 0,0 · 0,00
Zero resultante de arredondamento de dado originalmente positivo
Desenha zero e mantém o valor original na exportação.
-0 · -0,0 · -0,00
Zero resultante de arredondamento de dado originalmente negativo
Idem, com o sinal preservado.
Estado também é dado. Um gráfico vazio sem explicação parece queda a zero, e quem decide na segunda reage ao desenho. Cada estado diferente do normal ganha uma frase com a causa e a próxima ação, no mesmo vocabulário que a equipe usa no painel administrativo, para que o alerta de uma tela seja o mesmo da outra.
Estados do gráfico: o que aparece e o texto que explica a causa
Estado
Quando
O que mostrar
Texto de exemplo
Carregando
Primeira busca dos dados
Nada até cerca de um segundo; depois, esqueleto com a forma do gráfico, só no primeiro carregamento.
"Carregando leads por canal."
Atualizando
Nova busca com dados já na tela
Mantém o desenho anterior e marca a atualização em andamento; nunca volta ao esqueleto.
"Atualizando. Valores de 07/10/2026 às 9h."
Sem credencial
A integração perdeu ou nunca teve a chave
Sem desenho; nome da fonte e quem configura.
"Sem credencial do CRM. Peça ao dono da integração."
Fonte fora do ar
A fonte respondeu com erro ou não respondeu
Último valor válido, marcado como antigo, ou nada.
"Fonte fora do ar desde 9h10. Último dado válido: 07/10/2026."
Sem série
A consulta voltou vazia para o recorte
Eixos sem marca e o recorte escrito.
"Sem registros para Instagram em setembro de 2026."
Sem massa
Há dados, mas a base é pequena demais para a taxa
Contagem bruta no lugar da taxa, ou intervalo.
"Sem massa: 12 leads no período, abaixo do mínimo de 100 para a taxa."
Dado atrasado
O ponto mais recente é mais velho que o prazo esperado da fonte
A série, com aviso e as duas datas.
"Rotina rodou em 08/10/2026; dado mais recente é de 05/10/2026, e a fonte costuma entregar em um dia."
"Atualizado em" informa quando a rotina rodou, e a idade do dado mais novo é outra informação. Um painel pode ter rodado hoje sobre um dado de três dias atrás, e só as duas datas juntas mostram o atraso. Os textos de exemplo usam valores hipotéticos, inclusive o mínimo de 100 leads, que cada operação calibra para a própria métrica.
Celular e toque: a versão de 390 pixels
No celular, o gráfico precisa de uma versão própria, decidida pela tarefa que ela preserva. Encolher o desenho de 1.280 pixels até caber em 390 derruba os rótulos abaixo do legível; Kim, Moritz e Hullman (EuroVis 2021) catalogaram 76 estratégias responsivas em 378 pares de gráficos para desktop e celular, entre elas transpor os eixos, cortar dados e trocar a legenda por rótulo direto.
Este guia ainda não pratica isso nas quarenta figuras: cada uma tem largura mínima de 600 pixels e rola na horizontal dentro do quadro, com a tabela de dados logo abaixo como leitura completa. Para gráfico de produto, a referência é a tabela a seguir.
Da versão de desktop à de 390 pixels, pela tarefa que precisa sobreviver
Tarefa preservada
No desktop
Em 390 pixels
Comparar categorias com nome longo
Colunas verticais
Transpor para barra horizontal: o nome cabe inteiro à esquerda e o valor vai na ponta.
Ranquear muitas categorias
Quinze barras
As cinco a oito maiores e o grupo "outros", com a lista completa na tabela.
Identificar séries
Legenda no topo
Rótulo direto na ponta de cada linha; a legenda sai.
Ler a escala
Seis a dez linhas de grade, como orienta o ONS
Três a seis linhas de grade e menos rótulos de eixo.
Comparar a mesma métrica entre grupos
Small multiples em três colunas
Small multiples em uma coluna. Brehmer, Lee, Isenberg e Choe (IEEE TVCG, 2020) mediram 96 pessoas no próprio celular, e os painéis pequenos foram mais rápidos que a animação.
Acompanhar série longa
Doze meses com zoom
Período mais curto por padrão e seletor de período; altura própria, sem herdar a proporção do desktop.
O toque muda as regras da interação. Não existe passar o mouse, então a dica abre por toque e precisa ser dispensável sem mover o foco, persistente enquanto a pessoa lê e parada, sem sumir por tempo (WCAG 2.2, critério 1.4.13). Legenda clicável e botão de período precisam de alvo com pelo menos 24 por 24 pixels (critério 2.5.8). Ctrl mais roda do mouse não existe no celular: zoom de gráfico vira botão ou controle deslizante de período. Dado que atualiza sozinho precisa de botão de pausa (critério 2.2.2).
A versão de 390 pixels foi desenhada pela tarefa que ela preserva.
Nenhum rótulo abaixo de 14 pixels e nenhuma rolagem horizontal da página inteira.
Dica abre por toque, fecha com Esc ou novo toque e não some sozinha.
Alvos de toque com 24 por 24 pixels ou mais; zoom por botão.
IA gerando gráficos: o número fabricado é o defeito mais caro
Um agente pode gerar uma option do ECharts ou uma especificação do Vega-Lite. A sintaxe precisa ser validada antes de renderizar, como no uso de mermaid.parse() descrito no guia de diagramas. Confira também os dados: modelos podem preencher lacunas ou alterar valores de forma plausível. A aparência do gráfico e uma configuração válida não demonstram que os números correspondem à fonte.
Regra da casa: a fonte fornece os valores, e o agente prepara a visualização. Antes de publicar, confira a série contra a consulta de origem, inclusive totais e extremos; registre de onde a especificação lê os dados; preserve lacunas e rejeite valores sem origem identificada. Especificações declarativas facilitam a inspeção, mas a validação também precisa examinar transformações, cálculos e filtros.
O modelo que lê um gráfico erra tanto quanto o que gera. Em benchmarks com gráficos reais, os melhores modelos multimodais ainda ficam longe das pessoas quando a pergunta exige raciocínio, e a queda é maior quando falta o rótulo com o valor. A tabela resume os números publicados, cada um no próprio estudo e com o modelo avaliado na época.
Modelos multimodais lendo gráficos: resultados publicados, por estudo
Claude Sonnet 3.5 cai de cerca de 90,5% no ChartQA para 55,81%
CHOCOLATE (Findings ACL 2024)
Legendas de gráfico geradas por modelos
213 de 1.187 legendas factualmente corretas, cerca de 18%
MMC (NAACL 2024) e DePlot (Findings ACL 2023)
Converter gráfico em tabela e raciocinar sobre ela
A conversão em tabela é a tarefa mais frágil; com a tabela pronta, o raciocínio melhora
A consequência para quem publica é entregar ao leitor, humano ou modelo, a tabela que ninguém deveria precisar extrair da imagem. A descrição também se gera a partir dos dados, nunca da imagem, e separa o que o dado diz da interpretação (Eliza e Rahman, arXiv 2607.25021, pré-print). Lundgard e Satyanarayan (IEEE TVCG 2022) analisaram 2.147 frases com 30 leitores cegos e 90 videntes e propuseram quatro níveis de descrição, que servem de roteiro:
Construção: tipo de gráfico, eixos, unidade, período e série.
Estatística: extremos, média ou mediana e lacunas, com o número escrito.
Tendência: direção, mudança de ritmo e exceção.
Contexto: causa provável ou consequência, marcada como interpretação e não como dado.
Gráfico gerado por IA passa por três portões, nesta ordem, e o primeiro não prova os outros dois. Ford e Rios (arXiv 2506.06175, pré-print sem revisão por pares) encontraram alucinação em 6 de 100 gráficos gerados, enquanto o erro de execução ficava em 4,5% em 2025; o VisEval (IEEE VIS 2024) avalia validade, legalidade e legibilidade em separado pelo mesmo motivo.
Executa: a especificação passa no validador e renderiza sem erro.
É fiel à base: total, mínimo, máximo e número de linhas batem com a consulta de origem, e a lacuna continua null.
É legível e acessível: título com a conclusão, eixos honestos, contraste nos dois temas, descrição e tabela.
Rastreadores de IA como GPTBot, ClaudeBot e PerplexityBot não executam JavaScript, segundo a medição publicada pela Vercel em 17/12/2024; gráfico montado só no cliente não existe para eles. O resumo e a tabela vão no HTML que o servidor entrega, e a marcação deixa a figura legível por máquina:
SVG com role="img", <title> e <desc> ligados por aria-labelledby; a descrição traz extremos e lacunas tirados da tabela. As figuras do catálogo seguem esse padrão.
Figura com aria-describedby apontando para o resumo ou para a tabela equivalente.
Tabela com <caption> que diz unidade e período.
CSV para download quando o dado é real e pode ser publicado.
Três fronteiras separam este guia de projetos maiores, e cruzar qualquer uma sem perceber é onde o orçamento estoura. A primeira é a do formato sob medida: quando a visualização pedida não existe em catálogo e carrega anotação e narrativa próprias, o caso vira D3, com prazo de projeto e não de tarefa. A segunda é a da planilha: quando quem usa precisa editar célula, fórmula e filtro dentro do produto, a resposta deixou de ser biblioteca de gráfico e virou planilha embutida, território do Univer, sucessor declarado do Luckysheet pelos próprios mantenedores. A terceira é a das redes: nós e arestas, força e comunidade pertencem ao guia de diagramas e grafos, com Cytoscape.js e Sigma.js.
Em todas as três, a pergunta de triagem é a mesma que abriu este guia: quem usa a tela e o que essa pessoa decide ali. Leitor que só lê fica no gráfico pronto; usuário que edita, salva e repassa cruzou a fronteira do produto, e produto se orça com licença conferida, teste e suporte.
Oficina: transforme um arquivo em gráfico sem esconder os dados ausentes
Valide a entrada antes de calcular a taxa e use a mesma seleção no gráfico e na tabela. Você termina esta oficina com um recorte exportável, sua origem declarada e filtros que sobrevivem ao histórico do navegador.
No exercício fictício, uma agência recebeu resultados de campanhas por mês. Uma linha registra zero vendas; outra ainda não tem informação. Converter os dois casos em zero muda a leitura do relatório. O contrato da entrada, isto é, as regras para aceitar cada campo, precisa conservar essa diferença.
A API URLSearchParams permite gravar filtros no endereço. Ela não transporta o arquivo importado. Quem abrir o link precisará carregar o mesmo conjunto para reproduzir a seleção. A origem do número e a responsabilidade por ele continuam no contrato de métrica.
Importe, provoque a falha e recupere o recorte
Leia o JSON da amostra. Cada linha possui identificador único, canal, período, contatos e vendas. A fonte descreve de onde o conjunto veio; o texto não comprova sua autenticidade.
Valide a entrada. Compare a venda zero com a ausência marcada por null. Quando contatos for zero, a taxa precisa explicar que falta base para o cálculo.
Injete um identificador repetido. O painel bloqueia o conjunto inteiro e indica a linha; ele não escolhe silenciosamente qual registro preservar. Restaure a amostra para continuar.
Filtre um mês, exporte e confira cada linha. Use voltar e avançar no navegador. Para importar dados próprios, mantenha este formato e um recorte de até 500 linhas.
Dados do exercício: valores fictícios criados em 6 de outubro de 2026. Nenhum resultado representa a Leadlovers ou seus clientes. O arquivo é lido localmente; esta oficina não o envia a um servidor.
Use vendas como inteiro ou null; contatos como inteiro não negativo. Limite do arquivo: 200 kB. IDs aceitam letras minúsculas, números e hífen.
Ative JavaScript para validar a amostra. O roteiro e o código permanecem disponíveis.
Nenhum conjunto validado.
Mesmos registros das barras; taxa = vendas divididas por contatos, por linha.
Canal
Período
Contatos
Vendas
Taxa e condição
Leve o contrato para o seu código
Separe validação, seleção e apresentação. O trecho abaixo pressupõe que os tipos e limites já foram validados; ele mostra por que ausência não deve ser substituída antes da divisão.
function taxa(linha) {
if (linha.vendas === null) return { valor: null, motivo: "Sem informação" };
if (linha.contatos === 0) return { valor: null, motivo: "Sem base" };
return { valor: linha.vendas / linha.contatos, motivo: null };
}
const recorte = linhas.filter(linha => !periodo || linha.periodo === periodo);
// Use recorte no gráfico, na tabela e na exportação.
const endereco = new URL(location.href);
if (periodo) endereco.searchParams.set("of-periodo", periodo);
else endereco.searchParams.delete("of-periodo");
history.pushState(null, "", endereco);
O erro a procurar é uma taxa calculada a partir de linhas incompatíveis. Vendas únicas e contatos precisam pertencer ao mesmo período e à mesma população. A validação desta amostra impede vendas maiores que contatos porque esse é o contrato didático escolhido; outro indicador pode exigir uma regra diferente.
O aceite exige IDs únicos e igualdade entre as linhas filtradas, a tabela e o arquivo baixado.
Ausência, zero e denominador zero precisam de saídas distintas. Um erro de entrada bloqueia a renderização e informa como corrigir.
Teclado e histórico precisam restaurar o recorte. Abrir a URL em outro navegador não deve fingir que o arquivo local foi compartilhado.
Prompt para adaptar: "Implemente este contrato de dados sem completar lacunas. Entregue validação por linha, tabela e gráfico a partir da mesma seleção, filtros na URL e exportação com fonte. Mostre os testes de ID repetido, null, zero e período sem linhas. Não conecte um CRM neste exercício."
Continue nos laboratórios do curso: "Gráficos editoriais" mostra o uso de dados do curso; "Filtros em linguagem natural" oferece outro modo de selecionar. A proposta de transições de dados vem depois da validação e ainda é um roteiro de aprofundamento.
Oficina: meça uma série densa sem apagar o pico
Compare SVG e Canvas com a mesma série antes de trocar de renderizador. A oficina mede o trabalho local e mostra como a média pode ocultar um pico, mesmo quando o gráfico parece mais leve.
A documentação do ECharts orienta a escolha pelo ambiente, volume e recursos necessários. Aqui a comparação usa APIs nativas: um caminho SVG e um traçado Canvas. Ela não mede o ECharts nem estabelece um limite universal de pontos.
Compare a mesma carga em condições declaradas
Gere 500 pontos e registre a configuração. Repita com 5.000 e 50.000, mantendo o navegador e a largura. A série é sintética e determinística; nenhum número vem de uma operação comercial.
Alterne o renderizador e execute de novo. O tempo de envio das instruções não equivale à conclusão do trabalho da GPU, o processador gráfico.
Selecione a média por blocos. Compare o pico exibido com o original e abra sua página na tabela. Depois use extremos por bloco para preservar o maior e o menor valor.
Baixe os valores originais e anote navegador, dispositivo e condições. Uma comparação útil precisa explicar também o que foi perdido na agregação.
Carga fictícia: onda matemática com um pico adicional no índice central. Escala vertical fixa de zero a 200 unidades sintéticas; eixo horizontal em ordem de amostra. Os extremos preservam valores, mas não todos os detalhes da curva.
A carga só será criada quando você executar a medição.
O experimento não anima a curva nem atualiza em segundo plano. Isso mantém a comparação utilizável com movimento reduzido. Trocar o tema ou a largura redesenha a mesma série.
Gere a série para consultar seus valores.
Carga sintética, 20 linhas por página; nenhuma linha é removida pela agregação visual.
Amostra
Valor original
Interprete o tempo e a perda de informação
Performance.now() fornece os marcos usados nesta amostra. O terceiro intervalo inclui atualização da tabela e espera por dois quadros; ele não isola pintura e não mede INP, a latência de interação observada durante o uso da página.
const dados = Float64Array.from({ length: quantidade }, (_, i) =>
60 + Math.sin(i / 17) * 20 + (i === Math.floor(quantidade / 2) ? 100 : 0)
);
const inicio = performance.now();
desenhar(dados); // Implemente SVG ou Canvas com a mesma escala.
const envio = performance.now() - inicio;
// Para cada bloco: preserve primeiro, mínimo, máximo e último,
// ordenados pelo índice original. Mantenha a base sem agregação.
Uma média menor não corrige o gráfico se a decisão depende do pico. Use média para uma pergunta sobre nível médio; preserve extremos quando limites importam. Se uma lacuna entrar numa série real, quebre o caminho nesse trecho em vez de unir os lados como se houvesse medição.
O arquivo baixado contém todos os valores originais; a tabela permite consultar o índice do pico sem depender de apontar o mouse.
Os dois renderizadores usam escala e dados iguais. O relatório identifica configuração e natureza de cada tempo, sem prometer um ganho universal.
Texto, linha e fundo precisam ser conferidos nos dois temas. A agregação declara quais propriedades preserva e permite retornar à série completa.
Prompt para adaptar: "Monte uma comparação SVG e Canvas com entrada idêntica, escala fixa e carga sintética declarada. Separe geração, envio do desenho e espera por quadros. Compare média e extremos sem destruir a base; entregue tabela paginada, exportação e descarte de observadores."
Monte o painel executivo desta operação com no máximo 11 indicadores,
no formato painel de uma página.
Requisitos:
- Cada indicador com meta, período comparado e denominador explícito.
- Meta vs. realizado em bullet chart; variação explicada em waterfall;
valor exato em variance table com algarismos tabulares.
- Nenhum velocímetro, nenhuma pizza, nenhum efeito 3D.
- Cores derivadas dos tokens do projeto. Resolva os valores antes de
passá-los à option e atualize a paleta ao trocar o tema.
- Fonte e data de atualização visíveis junto de cada gráfico.
Critérios de aceite:
1. Cada indicador responde a uma decisão declarada em uma frase.
2. Rótulos passam 4,5:1 e formas 3:1 nos temas claro e escuro.
3. Cada gráfico tem resumo em texto e tabela alternativa com os dados.
Gráfico com dados conferíveis
Gere a spec do gráfico (Vega-Lite ou option do ECharts) para a série
abaixo, SEM alterar, completar ou arredondar nenhum valor.
Critérios de aceite:
1. A spec referencia os dados da fonte; nenhum valor digitado à mão.
2. Se um período estiver faltando na série, o gráfico mostra a lacuna,
em vez de interpolar.
3. Para cada número exibido, você aponta a linha da fonte de onde veio.
4. Se não tiver certeza de um valor, diga que não tem, em vez de
arriscar.
Auditoria de um painel antes de publicar
Audite o painel anexo nos dois temas do site (claro e escuro):
1. Liste todo rótulo e valor de eixo abaixo de 4,5:1 e toda forma
abaixo de 3:1 (WCAG 2.2, critérios 1.4.3 e 1.4.11).
2. Aponte séries distinguidas apenas por cor (critério 1.4.1).
3. Verifique se cada gráfico tem resumo em texto e tabela alternativa.
4. Liste todo número exibido sem fonte e data visíveis e toda
porcentagem sem denominador.
5. Confira se filtro e período sobrevivem ao copiar e colar a URL.
6. Procure, gráfico a gráfico, estes truques pelo nome e diga onde
aparecem: eixo truncado em barra ou área, eixo duplo com grandezas
diferentes, eixo invertido, eixo de tempo com intervalos
irregulares, ordem inadequada das categorias, dado ausente
desenhado como zero ou interpolado, falta de escala ou de unidade.
7. Confira se o título afirma uma conclusão e se ela coincide com o
traço mais saliente do desenho.
Devolva as correções em ordem de impacto, sem reescrever o painel.
A lista nomeada de truques no item 6 segue Lo e Qu (IEEE VIS 2024): a detecção de gráfico enganoso por modelo melhorou quando o prompt trouxe as definições dos truques.
Resumo verificável de um gráfico
Escreva o resumo do gráfico a partir da tabela anexa. A imagem
serve só para confirmar o tipo de gráfico.
Formato:
- Uma frase de construção: tipo, métrica, unidade, recorte e período.
- Até três frases com números (extremos, média ou mediana, lacunas).
Depois de cada número, indique entre colchetes a linha e a coluna
da tabela de onde ele veio.
- Uma frase de tendência.
- Se houver interpretação ou causa provável, escreva em parágrafo
separado que comece por "Interpretação:".
Critérios de aceite:
1. Todo número do resumo existe na tabela, com a mesma unidade.
2. Nenhuma lacuna vira zero e nenhum valor é arredondado sem aviso.
3. Nenhuma frase cita cor ou forma para apontar o gráfico.
4. Se a tabela não sustentar uma afirmação, a afirmação sai.
Cores das séries que se distinguem e se leem
Num gráfico com várias séries, isto é, linhas ou grupos de barras comparados lado a lado, cada cor cumpre três tarefas ao mesmo tempo. Ela se separa das vizinhas, aparece com força suficiente sobre o fundo claro e sobre o escuro e continua reconhecível para quem não distingue vermelho de verde.
Comparar códigos hexadecimais, a notação de cor com seis dígitos como #185c96, não diz se duas cores se confundem. A oficina mede a distância no OKLab, espaço de cor em que a distância acompanha como o olho vê. Essa medida se chama delta E OK: zero indica cores idênticas, e números maiores, diferença mais evidente.
A especificação CSS Color 4 do W3C adota 0,02 de delta E OK como diferença apenas perceptível ao ajustar cores que a tela não exibe. Num gráfico, a pessoa precisa reconhecer a série numa marca pequena e de relance. Por isso a oficina alerta abaixo de 0,1, cinco vezes aquele limite, como margem de trabalho.
Contraste compara a luminância relativa da marca e do fundo, uma grandeza física calculada a partir do RGB linear; a claridade percebida é outra medida, o L do OKLab usado no parágrafo anterior. A WCAG 2.2, diretriz de acessibilidade do W3C, pede no critério 1.4.11, sobre conteúdo não textual, pelo menos 3:1 para as partes do gráfico necessárias à leitura. Uma barra amarela some no branco; um azul profundo some no fundo escuro.
Para simular deuteranopia e protanopia, a ausência dos cones sensíveis ao verde e ao vermelho, a oficina aplica as matrizes de Machado, Oliveira e Fernandes, publicadas em 2009, sobre a cor em RGB linear. Para tritanopia, a perda dos cones sensíveis ao azul, essas matrizes não servem, e a oficina usa o método de Brettel, Viénot e Mollon, de 1997, com os parâmetros pré-calculados do libDaltonLens. As duas simulações aproximam a forma mais intensa de cada condição e não substituem o teste com pessoas que convivem com ela.
Mesmo com todas as aprovações, a cor nunca deve ser o único jeito de separar séries. O critério 1.4.1 da WCAG 2.2 pede outro sinal: rótulo direto ao lado da marca, forma diferente do marcador ou padrão de preenchimento, como hachura. A prévia desta oficina escreve o nome de cada série junto da barra, sem depender de legenda.
Monte a paleta, provoque a falha e ajuste
Toque em "Usar exemplo". A paleta fictícia de cinco canais tem falhas de propósito: um amarelo claro demais, um azul escuro demais e pares que se confundem na simulação.
Leia a tabela de contraste. Cada série recebe uma nota contra o fundo claro e outra contra o escuro; aprova quem chega a 3:1 nos dois.
Confira o par mais próximo em cada visão. Um par que separa bem na visão comum pode cair abaixo de 0,1 na deuteranopia.
Toque em "Sugerir ajuste". A série reprovada muda só de claridade em OKLCH, a versão do OKLab em claridade, croma e matiz, até passar 3:1 nos dois fundos.
Dados do exercício: paleta fictícia criada em 6 de outubro de 2026 para mostrar as falhas mais comuns. As contas rodam no seu navegador; nenhuma cor sai desta página.
Ative JavaScript para editar as cores. Sem ele, as tabelas abaixo trazem o resultado já calculado da paleta de exemplo, com fundo claro #ffffff e fundo escuro #0b1220.
Resultado da paleta de exemplo: E-mail fica abaixo de 3:1 no fundo escuro e Orgânico no claro; WhatsApp e Anúncios se confundem na deuteranopia, E-mail e Indicação na protanopia, e WhatsApp e Indicação na tritanopia.
Contraste de cada série contra os dois fundos; aprova quem chega a 3:1 nos dois (WCAG 2.2, critério 1.4.11).
Série
Cor
No fundo claro
No fundo escuro
Situação
E-mail
#185c96
6,98:1
2,68:1
Reprovada no fundo escuro
WhatsApp
#2e933c
3,92:1
4,77:1
Aprovada nos dois fundos
Anúncios
#d1495b
4,36:1
4,29:1
Aprovada nos dois fundos
Orgânico
#f2c14e
1,68:1
11,16:1
Reprovada no fundo claro
Indicação
#8a5fbf
4,70:1
3,99:1
Aprovada nos dois fundos
Par de séries mais próximo em cada visão, medido em delta E OK; abaixo de 0,1 as cores se confundem.
Visão
Par mais próximo
Delta E OK
Situação
Visão comum
E-mail e Indicação
0,163
Separa bem
Deuteranopia
WhatsApp e Anúncios
0,028
Abaixo de 0,1: confundem
Protanopia
E-mail e Indicação
0,078
Abaixo de 0,1: confundem
Tritanopia
WhatsApp e Indicação
0,082
Abaixo de 0,1: confundem
Exceção do critério 1.4.11: uma série reprovada contra o fundo fica dispensada de 3:1 quando o nome e o valor estão escritos no próprio gráfico ou numa tabela equivalente, como na prévia abaixo. O rótulo escrito continua precisando de 4,5:1, e partes vizinhas, como fatias e segmentos empilhados, precisam de 3:1 entre si ou de um separador na cor do fundo.
Leve a conta para o seu código
As duas medidas cabem em poucas linhas e não pedem biblioteca. O trecho abaixo recebe cores já validadas em RGB linear, de zero a um; a conversão completa, com a simulação de daltonismo, está no arquivo da oficina, que você pode abrir pelo código-fonte desta página.
const lum = ([r, g, b]) => 0.2126 * r + 0.7152 * g + 0.0722 * b;
const contraste = (a, b) => {
const [claro, escuro] = [lum(a), lum(b)].sort((x, y) => y - x);
return (claro + 0.05) / (escuro + 0.05); // aprova marca com 3 ou mais
};
function oklab([r, g, b]) {
const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);
const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);
const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);
return [0.2104542553 * l + 0.7936177850 * m - 0.0040720468 * s,
1.9779984951 * l - 2.4285922050 * m + 0.4505937099 * s,
0.0259040371 * l + 0.7827717662 * m - 0.8086757660 * s];
}
const deltaEOK = (a, b) => Math.hypot(...oklab(a).map((v, i) => v - oklab(b)[i]));
Este guia é revisado quando a evidência muda, e cada revisão registra a data, o que mudou e por quê, como fazem os guias vivos do UK Analysis Function, do USWDS e da Data Visualization Society. As gravações de vídeo e podcast continuam com a data de 02/09/2026 e não são regravadas a cada revisão; as divergências ficam na errata das gravações.
Revisões do guia de gráficos, da mais recente para a mais antiga
Data
O que mudou
Por quê
Seções novas sobre título, eixo e escala, números, datas e estados, celular e toque; acessibilidade além do contraste ampliada; leitura de gráficos por IA com números publicados; prompt de resumo verificável; descrição textual nas figuras do catálogo; errata das gravações; legendas do catálogo sem referência a cor; datas das versões do ECharts corrigidas.
Pesquisa de 08/10/2026 com fontes primárias de percepção, acessibilidade, design systems, leitura por IA e ECharts 6. A data de 25/05/2026 atribuída ao ECharts 6.1 não se confirmou, e os recursos citados com ela eram da versão 6.0.
Oficinas de dados conferíveis, séries densas e paleta de séries.
Exercícios executáveis para validar entrada, medir renderização e testar cores.
Revisão em cinco ondas: fontes, proporções e medianas dos exemplos, layout responsivo, busca no catálogo, cópia e impressão.
Auditoria de fidelidade das fontes e da geometria das quarenta figuras.
Publicação do guia, com aula em vídeo e podcast.
Primeira versão do menu de execução visual.
Perguntas frequentes
Qual biblioteca de gráficos escolher primeiro?
Para painéis operacionais com filtros e atualização frequente, avalie o Apache ECharts. Para figuras editoriais em SVG, compare Observable Plot e visx conforme a stack. O uPlot prioriza séries temporais em canvas e informa cerca de 50 kB minificados no README consultado em 10/09/2026; meça o desempenho com a carga real. Use uma biblioteca principal por projeto e confira a licença da versão adotada.
Quando usar SVG e quando usar canvas num gráfico?
SVG facilita estilos por CSS, ampliação e marcação semântica de cada elemento. Canvas pode ser adequado a séries densas, mas o bitmap precisa de alternativa textual e dados acessíveis em HTML. Nenhum formato garante acessibilidade ou desempenho sozinho: teste o volume real, o teclado e o leitor de tela antes de escolher.
Por que bullet chart no lugar de velocímetro?
O bullet chart proposto por Stephen Few reúne realizado, meta e faixas de referência em uma escala compacta, permitindo comparar vários indicadores. Para leituras precisas, a posição em escala comum oferece vantagem sobre o ângulo, conforme os experimentos de Cleveland e McGill publicados em 1984. A escolha deve conservar a comparação de que o leitor precisa.
O que a WCAG 2.2 exige de um gráfico?
A WCAG 2.2 exige contraste de 4,5:1 para texto comum, ou 3:1 para texto grande nas condições do critério 1.4.3; o critério 1.4.11 prevê 3:1 para elementos gráficos necessários à compreensão. Pelo critério 1.4.1, a cor precisa ser acompanhada de outro sinal, como rótulo ou marcador. Confira os dois temas, o teclado e a alternativa textual.
Como publicar um gráfico gerado por IA sem publicar um número errado?
Valide a especificação e confira os dados contra a origem antes de renderizar. Modelos podem criar valores plausíveis que não existem na base. Exiba fonte e data, preserve lacunas, confira cálculos e filtros e recuse qualquer número sem origem identificada. Uma especificação declarativa ajuda a inspeção, mas não substitui a conferência dos valores.
Quando o painel precisa de tabela em vez de gráfico?
Use tabela quando o leitor precisar conferir valores exatos, como realizado, meta e período anterior. Alinhe os números com algarismos tabulares e explicite a unidade. Use gráficos para revelar padrões, como tendência, sazonalidade e concentração; a tabela pode permanecer ao lado como alternativa de consulta.
Como mostrar no gráfico um dado atrasado ou parcial?
Mostre a série com um aviso e as duas datas: quando a rotina rodou e de quando é o dado mais recente, comparadas com o prazo que a fonte costuma cumprir. Período ainda aberto entra marcado como parcial, com traço ou rótulo próprio, e nunca é comparado direto com um período fechado. Dado indisponível fica como lacuna visível, sem interpolar os vizinhos e sem virar zero.
O título do gráfico deve dizer a conclusão?
Em gráfico de decisão, sim: o título afirma a conclusão e o subtítulo traz métrica, recorte e período. A conclusão precisa coincidir com o traço mais saliente do desenho, porque o leitor segue o gráfico quando texto e destaque divergem. Em painel que atualiza sozinho, a manchete é calculada a partir do dado. Teste perguntando a quem não fez o gráfico o que ele conclui.