Histogramas e gráficos de dispersão são ótimos métodos para visualizar dados e o relacionamento entre variáveis, mas recentemente estive pensando sobre quais técnicas de visualização estão faltando. O que você acha que é o tipo de enredo mais subutilizado?
As respostas devem:
- Não deve ser muito usado na prática.
- Seja compreensível sem muita discussão em segundo plano.
- Seja aplicável em muitas situações comuns.
- Inclua código reproduzível para criar um exemplo (de preferência em R). Uma imagem vinculada seria legal.
Respostas:
Eu realmente concordo com os outros pôsteres: os livros de Tufte são fantásticos e vale a pena ler.
Primeiro, eu apontaria para você um ótimo tutorial sobre ggplot2 e ggobi em "Looking at Data" no início deste ano. Além disso, eu destacaria apenas uma visualização do R e dois pacotes gráficos (que não são tão amplamente usados quanto os gráficos base, treliça ou ggplot):
Mapas de calor
Eu realmente gosto de visualizações que podem lidar com dados multivariados, especialmente dados de séries temporais. Mapas de calor podem ser úteis para isso. Um realmente interessante foi apresentado por David Smith no blog Revolutions . Aqui está o código ggplot, cortesia de Hadley:
O que acaba parecendo algo assim:
RGL: Gráficos 3D interativos
Outro pacote que vale a pena ser aprendido é o RGL , que fornece facilmente a capacidade de criar gráficos 3D interativos. Existem muitos exemplos online para isso (inclusive na documentação do rgl).
O R-Wiki tem um bom exemplo de como plotar gráficos de dispersão 3D usando rgl.
GGobi
Outro pacote que vale a pena conhecer é o rggobi . Há um livro da Springer sobre o assunto e muita documentação / exemplos on-line, inclusive no curso "Looking at Data" .
fonte
Eu realmente gosto de pontos e, quando os recomendo a outros, quando os recomendo, para problemas de dados apropriados, eles sempre ficam surpresos e encantados. Eles não parecem ter muita utilidade, e eu não consigo entender o porquê.
Aqui está um exemplo do Quick-R:
Acredito que Cleveland é o principal responsável pelo desenvolvimento e promulgação deles, e o exemplo em seu livro (em que dados defeituosos eram facilmente detectados com um gráfico de pontos) é um argumento poderoso para seu uso. Observe que o exemplo acima coloca apenas um ponto por linha, enquanto que a potência real deles vem com vários pontos em cada linha, com uma legenda explicando qual é qual. Por exemplo, você pode usar símbolos ou cores diferentes para três pontos no tempo diferentes e, portanto, obter facilmente uma sensação de padrões de tempo em diferentes categorias.
No exemplo a seguir (feito no Excel de todas as coisas!), Você pode ver claramente qual categoria pode ter sofrido uma troca de rótulo.
fonte
Parcelas usando coordenadas polares certamente são subutilizadas - alguns diriam por um bom motivo. Eu acho que as situações que justificam seu uso não são comuns; Eu também acho que quando essas situações surgem, gráficos polares podem revelar padrões em dados que gráficos lineares não podem.
Eu acho que é porque às vezes seus dados são inerentemente polares, e não lineares - por exemplo, são cíclicos (coordenadas x que representam horários durante 24 horas por dia, durante vários dias), ou os dados foram mapeados anteriormente em um espaço de recurso polar.
Aqui está um exemplo. Esse gráfico mostra o volume médio de tráfego de um site por hora. Observe os dois picos às 22:00 e à 01:00. Para os engenheiros de rede do Site, esses são significativos; Também é significativo que eles ocorram próximos um do outro (apenas duas horas de intervalo). Mas se você plotar os mesmos dados em um sistema de coordenadas tradicional, esse padrão seria completamente oculto - plotado linearmente, esses dois picos seriam separados por 20 horas, o que são, embora também sejam separados por apenas duas horas em dias consecutivos. O gráfico polar acima mostra isso de maneira parcimoniosa e intuitiva (uma lenda não é necessária).
Existem duas maneiras (que eu conheço) de criar plotagens como essa usando R (criei a plotagem acima w / R). Uma é codificar sua própria função nos sistemas gráficos de base ou de grade. A outra maneira, mais fácil, é usar o pacote circular . A função que você usaria é ' rose.diag ':
fonte
qplot(y=data, x=1:length(data), fill=factor(1:length(data)), stat='identity', geom='bar') + coord_polar()
Se o seu gráfico de dispersão possui tantos pontos que se torna uma bagunça completa, tente um gráfico de dispersão suavizado. Aqui está um exemplo:
O
hexbin
pacote (sugerido por @Dirk Eddelbuettel) é usado para a mesma finalidade, massmoothScatter()
tem a vantagem de pertencer aographics
pacote e, portanto, faz parte da instalação padrão do R.fonte
Em relação ao sparkline e outras idéias do Tufte, o pacote YaleToolkit no CRAN fornece funções
sparkline
esparklines
.Outro pacote que é útil para conjuntos de dados maiores é o hexbin , que habilmente agrupa os dados em buckets para lidar com conjuntos de dados que podem ser muito grandes para gráficos de dispersão ingênuos.
fonte
plot
uma atualização para a minha pergunta , com alguma ajuda deste post do fórum TufteHmisc::latex()
versão da saída deHmisc::describe
inclui um mini-histograma que é incluído na tabela.As parcelas de violino (que combinam parcelas de caixa com densidade de kernel) são relativamente exóticas e bem legais. O vioplot pacote no R permite que você os faça com bastante facilidade.
Aqui está um exemplo (o link da Wikipedia também mostra um exemplo):
fonte
bwplot(... panel = panel.violin)
Outra boa visualização de séries temporais que eu estava revisando é o "gráfico de resposta" (como destaque nesta postagem no blog "Learning R" ). Isso é muito útil para visualizar alterações de posição ao longo do tempo.
Você pode ler sobre como criá-lo em http://learnr.wordpress.com/ , mas é assim que termina:
fonte
Também gosto das modificações de boxplots da Tufte, que permitem fazer pequenas comparações de múltiplos com muito mais facilidade, porque são muito "finas" na horizontal e não confundem o plot com tinta redundante. No entanto, funciona melhor com um número bastante grande de categorias; se você tiver apenas alguns em um gráfico, os boxplots regulares (Tukey) ficam melhores, pois têm um pouco mais de peso.
Outras maneiras de fazer isso (incluindo o outro tipo de boxplot Tufte) são discutidas nesta pergunta .
fonte
Não devemos esquecer o enredo bonito e (historicamente) importante do caule e das folhas (que o Tufte também ama!). Você obtém uma visão geral diretamente numérica de sua densidade e forma de dados (é claro que se seu conjunto de dados não for maior que cerca de 200 pontos). Em R, a função
stem
produz seu layout de caule e folha (na área de trabalho). Prefiro usar agstem
função do pacote fmsb para desenhá-la diretamente em um dispositivo gráfico. Abaixo está uma variação da temperatura corporal do castor (os dados devem estar no seu conjunto de dados padrão) em uma exibição tronco a folha:fonte
Gráficos Horizon (pdf), para visualizar muitas séries temporais de uma só vez.
Gráficos de coordenadas paralelas (pdf), para análise multivariada.
Gráficos de associação e mosaico , para visualizar tabelas de contingência (consulte o pacote vcd )
fonte
Além do excelente trabalho de Tufte, recomendo os livros de William S. Cleveland: Visualizing Data e The Elements of Graphing Data . Eles não são apenas excelentes, mas foram todos feitos em R, e acredito que o código esteja disponível publicamente.
fonte
Boxplots! Exemplo da ajuda do R:
Na minha opinião, é a maneira mais útil de analisar rapidamente os dados ou comparar distribuições. Para distribuições mais complexas, há uma extensão chamada
vioplot
.fonte
Parcelas em mosaico me parecem atender aos quatro critérios mencionados. Existem exemplos em r, em mosaicplot.
fonte
Confira o trabalho de Edward Tufte e especialmente este livro
Você também pode tentar e pegar sua apresentação de viagem . É muito bom e inclui um pacote de quatro de seus livros. (juro que não possuo as ações de sua editora!)
A propósito, eu gosto da sua técnica de visualização de dados sparkline. Surpresa! O Google já escreveu e publicou no Google Code
fonte
Gráficos de resumo? Como mencionado nesta página:
Visualização de estatísticas resumidas e incerteza
fonte