Se fosse seu amigo, você impediria este tipo de visualização de dados — 16 tipos de gráficos ruins e por quê
(github.com/cxli233)- Um repositório no GitHub que organiza 16 práticas ruins de visualização comuns em artigos científicos e análises de dados, com exemplos, permitindo reproduzir cada caso diretamente por meio de código em R e dados simulados
- Aponta de forma concreta visualizações que distorcem a distribuição e as características dos dados, como o uso inadequado de gráficos de barras para comparar médias, violin plots com amostras pequenas e escalas de cor divergentes para dados unidirecionais
- Explica os problemas de tipos de gráfico que não consideram as características da percepção visual humana, como não reordenar linhas e colunas em heatmaps, não verificar outliers e as limitações fundamentais de gráficos de pizza e donut concêntricos
- Inclui alertas sobre erros estruturais de design que induzem a interpretações equivocadas, como confundir visualizações baseadas em posição com visualizações baseadas em comprimento e usar gráficos de barras com eixo truncado
- Uma coleção prática de antipadrões que pode servir de referência para qualquer pesquisador ou desenvolvedor que trabalhe com visualização de dados, trazendo também alternativas para cada item
1. Não compare médias com gráfico de barras
- Gráficos de separação de médias (means separation) são uma das visualizações mais comuns em artigos científicos, com o objetivo de mostrar média, variância e distribuição de dois ou mais grupos
- No exemplo, os dois grupos têm médias e desvios-padrão semelhantes, mas a distribuição é completamente diferente — só com o gráfico de barras não dá para perceber essa diferença
- Antes de usar gráfico de barras, é essencial verificar a distribuição dos dados, e Weissgerber et al. (2015, PLOS Biology) também apontam as limitações dos gráficos de barras
2. Não use violin plot com amostras pequenas
- Violin plots ou curvas suavizadas de distribuição não fazem sentido quando o tamanho da amostra é pequeno
- Em amostras pequenas, mesmo observações idênticas podem gerar grande variação na distribuição e nos quartis, e os quartis só se estabilizam quando n é maior que 50
- Isso é demonstrado por um experimento que compara quartis após várias amostragens da mesma distribuição normal
3. Não use escala de cor divergente para dados unidirecionais
- Em uma escala de cores, a cor mais escura e a mais clara devem representar valores significativos, como máximo, mínimo, média ou zero
- Fazer com que a cor mais clara ou mais escura represente um número arbitrário é um erro tão grave quanto “o maior valor não corresponder à barra mais longa em um gráfico de barras”
- Ao usar heatmaps ou gradientes de cor, é indispensável escolher uma escala compatível com a direção dos dados (unidirecionais vs. bidirecionais)
4. Não crie um prado de gráficos de barras (Bar Plot Meadow)
- Listar resultados de experimentos multifatoriais em gráficos de barras produz um “prado de gráficos de barras”, ineficiente para comunicar o resultado
- Para comunicar bem resultados multifatoriais, é preciso planejar com cuidado o agrupamento e o facetamento conforme os fatores de interesse
- No exemplo, compara-se o efeito de Treatment e Explant sobre Response no nível de Variety, destacando que o layout deve mudar conforme o foco da análise
5. É preciso considerar o reordenamento de linhas e colunas em heatmaps
- Heatmaps são muito comuns em artigos científicos, especialmente em trabalhos de ômicas (omics), mas se a ordem de linhas e colunas não for reorganizada, fica impossível extrair informação útil
- O reordenamento por clustering é comum, mas não é a única opção; em casos que representam disposição física, como uma placa de 96 poços, reordenar pode não ser possível
- Combinar reordenamento de linhas e colunas com um gradiente de cor adequado permite criar heatmaps visualmente bonitos e informativos
6. É preciso verificar outliers em heatmaps
- Outliers podem mudar completamente a percepção e a interpretação de um heatmap, e esse problema vale para qualquer visualização que represente dados numéricos por cor
- No exemplo, duas observações com 20 características medidas parecem globalmente semelhantes quando os outliers não são verificados, mas, ao ajustar a escala de cor com base no percentil 95, diferenças aparecem em todas as características
7. Verifique a faixa dos dados em cada nível dos fatores
- Em experimentos multifatoriais, é comum que a faixa da variável resposta varie muito conforme o nível de cada fator
- Em um experimento simulado com 3 compostos medidos em 2 grupos (controle vs. tratado), a faixa de concentração do composto 1 é muito mais estreita que a dos outros, o que pode fazer o efeito do tratamento passar despercebido
- Se você não verificar antes a faixa dos dados de cada composto, pode ignorar efeitos importantes do tratamento
8. Teste vários layouts em gráficos de rede
- A aparência de um gráfico de rede (o layout, não a topologia) tem grande impacto na sua eficácia
- Com os mesmos dados, 3 gráficos de rede podem parecer completamente diferentes, e o material inclui exemplos com 9 layouts distintos
- Como a dificuldade de interpretação muda muito conforme o layout, é importante experimentar várias opções
9. Não confunda visualizações baseadas em posição com visualizações baseadas em comprimento
- Em gráficos de pontos e linhas, os valores são representados pela posição nos eixos x e y; em gráficos de barras, os valores são representados pela distância (comprimento) a partir do eixo x
- No exemplo, um gráfico de barras que não começa em zero faz a barra do tempo 2 parecer cerca de 3 vezes maior que a do tempo 1, quando a diferença real entre as médias é de cerca de 1,6 vez — confundir comprimento com posição cria gráficos enganosos
-
Cuidado com gráficos de barras com eixo truncado (Broken Axis)
- Truncar o eixo pode ser útil para representar valores em faixa ampla (com alternativa como eixo em escala logarítmica), mas isso só é apropriado em gráficos baseados em posição
- Em gráficos de barras, mudar o ponto de truncamento do eixo gera efeito visual enganoso, fazendo certas barras parecerem mais longas ou mais curtas
- No exemplo, o comprimento da barra “d” muda muito conforme a posição do corte do eixo, porque gráficos de barras são gráficos baseados em comprimento
10. Não faça gráfico de pizza
- O gráfico de pizza representa dados proporcionais dividindo um círculo em setores, mas o ser humano é muito melhor em ler comprimentos do que ângulos e áreas
- Em um exemplo com 2 grupos e 4 subcategorias cada, o gráfico de pizza torna muito difícil a comparação entre grupos
- Mesmo simplificando para um gráfico donut, os dados continuam sendo representados pelo comprimento do arco; é muito mais eficaz “abrir” o donut e transformá-lo em gráfico de barras empilhadas
- No ggplot, o script para gráficos de pizza e donut é inclusive mais complexo do que para barras empilhadas
11. Não faça gráfico donut concêntrico
- Em donuts concêntricos, é fácil achar que os dados são representados pelo comprimento do arco, mas na prática eles são representados pelo ângulo do arco, e humanos têm dificuldade em ler isso
- O arco do anel externo é muito mais longo que o do anel interno, então, mesmo quando Group 2 e Group 3 têm o mesmo valor, o arco de Group 3 parece muito maior
- A ordem dos grupos (qual grupo fica em qual anel) afeta fortemente a impressão do gráfico, podendo gerar o paradoxo de valores maiores parecerem ter arcos menores
- O mesmo problema se aplica a layouts circulares como circos plot; a alternativa é simplesmente abrir o donut e convertê-lo em gráfico de barras empilhadas
12. Não use escalas de cor vermelho/verde nem arco-íris
- Deuteranomalia (deficiência vermelho-verde) é o tipo mais comum de daltonismo, ocorrendo em 1 a cada 16 homens e 1 a cada 256 mulheres
- Escalas vermelho/verde e arco-íris causam problemas para usuários com daltonismo e também preservam muito pouca informação em impressão em preto e branco
- Escalas “modernas” como viridis são amigáveis para daltônicos, seguras em tons de cinza e visualmente superiores
13. Não esqueça de reordenar gráficos de barras empilhadas
- Gráficos de barras empilhadas são usados com frequência para visualizar dados proporcionais, estrutura de comunidades, estrutura populacional e análise de mistura (admixture analysis)
- Em um exemplo com 100 amostras e 8 classes, se a ordem das barras não for otimizada, nenhum padrão fica identificável no gráfico
- Depois de reordenar as barras, os padrões aparecem de forma dramática, mostrando que o agrupamento e a ordenação das amostras são essenciais
14. Não misture barras empilhadas com comparação de médias
- Gráficos de barras empilhadas servem para dados proporcionais que somam 100%, enquanto gráficos de comparação de médias mostram diferenças entre médias e variância; são tarefas de visualização completamente diferentes
- No exemplo com plantas de mirtilo, o gráfico de barras empilhadas padrão mostra claramente que o tratamento químico deslocou fortemente o perfil de cor dos frutos para o estágio mais maduro (dark blue)
- Se você sobrepõe barras de erro e pontos sobre as barras empilhadas, deixa de ficar claro quais barras de erro e pontos estão sendo comparados, e as barras de erro da pilha superior são empurradas para cima, tornando a leitura do eixo y pouco intuitiva
- Se o objetivo principal é visualizar comparação de médias e variância, um gráfico separado para comparação de médias é mais adequado
15. Não use histograma com amostras pequenas
- Histogramas às vezes são sugeridos como alternativa ao gráfico de barras, mas são pouco robustos à escolha do número de bins quando a amostra é pequena
- Ao amostrar da mesma distribuição normal com n = 10, 100, 1000 e desenhar histogramas com 10, 30 e 50 bins, a forma do histograma muda muito mesmo sendo a mesma distribuição
- Em amostras pequenas (n < 30), é muito mais recomendável mostrar diretamente todos os pontos de dados no gráfico, e mesmo com n = 100 a aparência do histograma muda bastante conforme o número de bins
- Para que o histograma se torne robusto à variação no número de bins, é necessário tamanho de amostra em torno de 1000 ou mais
16. Não use boxplot para dados bimodais
- Como boxplots focam em mediana e quartis, eles não conseguem representar adequadamente dados bimodais (ou multimodais)
- Antes de fazer um boxplot, é indispensável verificar a distribuição dos dados
- Em tamanhos de amostra pequenos a médios (abaixo de dezenas de milhares), a melhor prática é usar
geom_quasirandom()do pacote ggbeeswarm para mostrar diretamente todos os pontos de dados - Gráficos baseados em distribuição, como violin plots e histogramas, não são robustos em amostras pequenas
2 comentários
O título do texto é bem divertido. Se você vir o texto original, há também um gráfico de exemplo, então fica fácil de entender.
Opiniões do Hacker News
Por um lado, esse conteúdo parece muito bom
Por outro, parece que muitos desses gráficos ruins foram escolhidos deliberadamente para esconder o fato de haver poucos pontos de dados ou alguma distribuição subjacente suspeita
Então, em vez de “se fosse seu amigo, você não deixaria fazer isso”, está mais para “ao ver um gráfico que obscurece em vez de mostrar com clareza, desconfie de que pode ser intencional”
Em nenhum artigo de que participei a postura foi diferente de “vamos mandar isso agora”
Muitas vezes o motivo de um gráfico não ser claro é que torná-lo claro exige tempo e esforço, e no meio acadêmico há uma grande escassez dos dois. Com certeza às vezes há casos de esconder deliberadamente detalhes feios, mas não vejo isso como a principal fonte dessas figuras ruins
Alguns grupos simplesmente não precisam mexer em vespeiro, e outros simplesmente não sabem. Há pessoas que não deveriam fazer pesquisa, mas falta treinamento, e mão de obra barata com doutorado também não aparece facilmente, então chegamos à situação atual
O exemplo de “se fosse seu amigo, você não deixaria fazer um mapa de calor que não trate outliers como valor máximo” é muito comum. Também aparece bastante em visualizações estatísticas de videogames
Jogos de estratégia e simulação têm muitas visualizações para ajudar o jogador a entender situações ou problemas, mas mapas de calor frequentemente têm suas escalas de cores bastante inutilizadas por causa do efeito dos outliers
Por exemplo, em Oxygen Not Included, ao ativar a visualização de temperatura, se houver uma fonte de calor como um vulcão, todo o resto das cores passa a parecer frio, então a tela costuma virar apenas azul ou vermelho rosado. Não dá para distinguir um vulcão de 1000 °C de uma câmara de vapor um pouco superaquecida a 270 °C; ambos ficam quase uniformemente vermelho-rosados. Uma base superaquecida a 60 °C também parece azul por ser relativamente fria, então o mapa de calor fica praticamente inútil para diagnosticar problemas de temperatura
Na verdade, a ideia de o significado das cores mudar conforme a variação de temperatura parece bem ruim
Isso funciona tanto como alerta de hotspot quanto, ao mesmo tempo, como aviso para ignorá-los, e é realmente útil
Antigamente, no HN, houve uma discussão acalorada porque alguém disse que qualquer gráfico em que o valor mínimo de todos os eixos não fosse 0 era enganoso
Estávamos falando de um gráfico de aumento da temperatura global causado pelas mudanças climáticas, e essa pessoa disse que o gráfico era misleading porque o eixo Y, a temperatura, não começava em 0. Não sei se era 0 grau Fahrenheit, 0 grau Celsius ou o maldito 0 Kelvin
Ela até disse algo como “se a mudança não aparece quando o piso é 0, talvez não seja uma mudança tão significativa assim?”. Minha fé na humanidade ficou amassada por um tempo, mas fico feliz que agora a conversa pareça estar em um nível um pouco mais alto. 2016–2020 parece ter sido outra era
Um gráfico que faz 25 °C parecer “25% mais quente” que 20 °C pode ser considerado enganoso nesse sentido. Claro que isso não justifica negar o aquecimento global
Por exemplo, o primeiro gráfico que encontrei foi este: https://religionnews.com/wp-content/uploads/2014/08/61Years-...
À primeira vista, parece que caiu 2/3, o que é enganoso. Gráficos de queda como esse muitas vezes passam uma impressão visual que não reflete a redução real
Se quiser ler mais sobre visualização de dados, The Visual Display of Quantitative Information, de Edward Tufte, é uma excelente referência. É um clássico publicado originalmente em 1983, mas continua relevante.
No entanto, a premissa central do texto, “maximize a razão entre informação e tinta”, é muito plausível, mas fundamentalmente falha. Isso porque a quantidade de tinta — ou, em uma tela, o número de pixels pretos — não equivale à complexidade visual. Quando o cérebro interpreta informações visuais, ele já concluiu a detecção de bordas, o agrupamento e outros pré-processamentos.
Ele dá o exemplo de encurtar os eixos em um gráfico de dispersão para mostrar apenas o intervalo dos dados, em vez de fazer os eixos se encontrarem nos cantos, dizendo que isso usa menos tinta e mostra mais informação, ou seja, é uma situação ganha-ganha. Mas, ao comparar, fica claro que a versão modificada é visualmente mais complexa. Em uma página complexa com texto e vários gráficos juntos, os fragmentos se misturariam visualmente e ficariam ainda piores.
Uma forma de reduzir essa complexidade é envolver áreas grandes, como o plot inteiro, em uma caixa — mas caixas são inimigas absolutas de Tufte, tanto nesse livro quanto em outros lugares. É surpreendente que ele mantenha essa postura mesmo depois de tanto tempo observando representações visuais.
Tukey foi um dos mentores de Tufte.
Para uma visão geral de alto nível sobre como escolher gráficos adequados aos dados e à história que eles contam, http://data-to-viz.com é excelente, e exemplos de várias bibliotecas de plotagem também são boas referências para inspiração. Por exemplo: https://matplotlib.org/stable/gallery/index.html
É muito interessante e relevante, mas não é a conclusão definitiva sobre o assunto.
Mas muita gente deixa passar a lógica por trás disso e simplesmente copia o estilo Tufte ao pé da letra, e o resultado às vezes fica estilizado demais e com aparência iconoclasta. Os plots padrão do ggplot2 em R são um bom exemplo.
É um texto que passa bem pelos erros comuns de visualização de dados, então vou compartilhá-lo com colegas. Como material complementar, recomendo fortemente 39 studies about human perception in 30 mins, de Kennedy Eliot: https://medium.com/@kennelliott/39-studies-about-human-perce...
Ele dá uma passada rápida pela base de pesquisas por trás de muitas afirmações sobre boas práticas em visualização de dados. O dogma de não usar gráficos de pizza é especialmente interessante: é um tema que incomoda designers desde a década de 1930, mas os resultados das pesquisas são, na melhor das hipóteses, inconclusivos.
Dando uma olhada por alto no post do Medium, parece que ele tem a mesma perspectiva sobre essas questões, então acho que os dois se complementam.
Em “3. Um amigo não deixa você usar uma escala de cores bidirecional em dados unidirecionais”, para começo de conversa, não entendo por que usar cores naqueles exemplos.
Em muitos casos, a representação de uma única variável pode melhorar com o uso de uma escala de cores em vez de apenas tons de cinza. Nesses casos, usar uma escala bidirecional para dados unidirecionais é ruim, e o contrário também.
Ou seja, não são exemplos que mostram quando se deve usar uma escala de cores.
Muitas dessas lições não são novas. Basta ver o livro Graphic presentation, de Willard C. Brinton, de 1939, disponível gratuitamente: https://archive.org/details/graphicpresentat00brinrich/mode/...
Aos meus olhos, estes ainda são todos ruins. Há decoração de gráfico demais e, na maioria deles, cores demais também.
Nem todas aquelas linhas são necessárias. Com cuidado, colocar menos coisas torna tudo mais legível. Qualquer livro de Edward Tufte fala disso, e só algumas técnicas básicas já levam você bem longe.
Correção: achei que tivesse sido criada por Tufte, mas eu estava errado. https://www.amazon.com/Grammar-Graphics-Statistics-Computing...
Nunca gostei de violin plots, mas não sou de forma alguma da área de visualização de dados. Há exatamente uma semana, por acaso, vi um vídeo chamado violin plots should not exist e as peças se encaixaram: https://youtu.be/_0QMKFzW9fw?feature=shared
Com base na pesquisa de Bill Cleveland, fiz uma apresentação chamada How Humans See Data, que reúne algumas dessas ideias em uma estrutura coerente
https://www.youtube.com/watch?v=fSgEeI2Xpdc
A parte sobre três etapas de estimativa foi realmente reveladora. Em retrospecto, parece óbvio, mas eu não tinha feito essa conexão até alguém explicar diretamente