3 pontos por GN⁺ 2023-11-21 | 2 comentários | Compartilhar no WhatsApp
  • 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

 
xguru 2023-11-21

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.

 
GN⁺ 2023-11-21
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”

    • Não está errado, mas pesquisadores também são muito imperfeitos. Estão sempre ocupados, na prática não têm tempo para melhorar o trabalho, e a ênfase está toda em publicar um artigo bom o suficiente
      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
    • A AMD e a NVIDIA também despejam gráficos bem sofríveis todos os anos, mas isso é intencional
    • Na literatura de psicologia, isso definitivamente acontece, intencionalmente ou não, e acho que o primeiro caso é especialmente verdadeiro. Artigos de psicologia reportam valores-p da ANOVA e assumem tranquilamente que tudo segue uma distribuição normal
      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
    • A maioria das pessoas não sabe organizar gráficos. Muitas vezes nem consegue colocar rótulos nos eixos direito
  • 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

    • Se uma determinada temperatura indica um problema significativo, as cores devem ser padronizadas para mostrar essa temperatura, e não geradas automaticamente a partir de toda a faixa de temperaturas existente no momento
      Na verdade, a ideia de o significado das cores mudar conforme a variação de temperatura parece bem ruim
    • Nesse caso, transformar os dados em escala logarítmica não seria uma solução adequada? Se a temperatura do vulcão em si não for o que interessa, o certo seria excluí-la ou marcá-la como outlier
    • Meu amigo literalmente tem um mapa de calor. Ou seja, uma câmera termográfica infravermelha, que marca outliers óbvios com listras vermelhas e brancas, como uma filmadora digital mostra áreas superexpostas
      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

    • É só entregar para essa pessoa um gráfico em que o eixo X é “ano” e começa no ano 0 d.C.
    • Se quiser que proporções de temperatura façam sentido, na verdade o ponto zero precisa ser em Kelvin
      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
    • A solução fácil é plotar a variação em °C desde uma determinada data de referência. Para qualquer gráfico, basta subtrair y(x_0) de todos os pontos
    • Concordo em certa medida com a afirmação de que “gráficos em que 0 não é o valor mínimo de todos os eixos são enganosos”
      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
    • É um caso clássico de alguém pegar uma regra simplificada demais de um problema que não entendeu completamente. Conhecimento superficial é perigoso
  • 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.

    • É um livro interessante e recomendável, com exemplos bons e ruins realmente divertidos.
      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.
    • É um bom livro. Também recomendo o artigo clássico de John Tukey, Some Graphic and Semigraphic Displays: https://www.edwardtufte.com/tufte/tukey
      Tukey foi um dos mentores de Tufte.
    • Do ponto de vista histórico, foi interessante, mas, considerando a quantidade muito maior de material disponível online hoje, não havia nenhuma informação “secreta” nem algo adicional indispensável.
      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
    • É um bom conselho, mas é preciso ter em mente que a neurociência e a compreensão da percepção avançaram desde então.
      É muito interessante e relevante, mas não é a conclusão definitiva sobre o assunto.
    • Acho que ele oferece uma estrutura perspicaz para pensar nos elementos que compõem uma boa visualização de dados.
      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.

  • 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.

    • Exatamente isso. Não há necessidade de codificar a mesma informação duas vezes. Isso só faz você ter que pensar mais para entender o que o gráfico está mostrando.
    • Nos exemplos, a escala de cores não melhora nada. Ainda assim, o conselho geral continua bom.
      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.
    • Aqui, parece melhor entender os “exemplos” como uma demonstração das propriedades das escalas de cores, e não como casos de uso reais.
      Ou seja, não são exemplos que mostram quando se deve usar uma escala de cores.
    • O comprimento das barras está sendo usado para explicar a situação. Não é uma recomendação para usar os dois ao mesmo tempo.
  • 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.

  • 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

    • Obrigado por postar. Foi uma apresentação excelente e com um ritmo muito bom; os 40 minutos passaram voando
      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