Preservando comentários em gráficos para análise exploratória de dados

8

Ao executar a análise exploratória dos dados, frequentemente imprimirei os gráficos e escreverei comentários / anotações etc.

As pessoas têm sugestões para uma melhor metodologia eletrônica? Estou especialmente interessado em python / R.

Estou procurando por algo 'rápido (e sujo)' que não diminua o trabalho exploratório, mas ajude a registrar os insights que fiz.

O que eu poderia imaginar é gerar gráficos como PDFs e adicionar comentários.

Idealmente, eu gostaria da opção de fazer isso de forma programática, para que, se refizer os gráficos, posso adicionar 'automaticamente' os comentários.

seanv507
fonte
1
Às vezes, o que eu faço Ré adicionar um gráfico separado (em uma página separada no final do pdf) e usá-lo em pastealguns comentários.
Hplieninger
3
Isso parece mais como uma questão de programação e se eu estou correto que você pode obter melhores respostas no R-ajuda ou StackOverflow
mdewey
1
@mdewey, bem, eu vejo isso como um fluxo de trabalho estatístico em R - eu concordo que minha 'solução sugerida' é apenas 'como escrever comentários em um pdf', mas estou assumindo que os estatísticos já enfrentaram esse problema antes e podem sugerir uma abordagem totalmente diferente ao problema geral de acompanhar as notas associadas aos gráficos.
seanv507 25/01
3
Meus alunos fazem isso sem solicitar colando gráficos no MS Word e adicionando comentários. Aprecio o interesse em métodos automatizados que cantam e dançam, mas às vezes a baixa tecnologia é a melhor.
Nick Cox
1
Eu acho que isso é de interesse geral. Tomei a liberdade de diminuir a ênfase no python / R, o que é contrário às diretrizes aqui.
Nick Cox

Respostas:

5

Aqui está uma solução fácil que muitas pessoas consideraram útil. Se você acha isso trivial, não vou discordar. Isso abrange software estatístico, sistema operacional e outros detalhes de computação.

Apenas copie e cole seus gráficos no seu processador de texto ou texto favorito e adicione seus próprios comentários. Isso pode significar o MS Word, software compatível com TeX, LaTeX, etc.

É isso aí. Claramente, as vantagens são a simplicidade (nada de novo para aprender) e flexibilidade (adicione o que você deseja da maneira que deseja).

Esta não é uma solução automatizada. Mas mesmo as soluções automatizadas dependem de receber informações nos gráficos e nos seus comentários, então o que é isso diferente?

Nick Cox
fonte
2
Eu acho que você está vendendo menos. Se, em vez de 'colar', você adicionar um link a um arquivo (como é possível no word latex etc.), à medida que os gráficos forem atualizados, as atualizações do documento - serão 'automatizadas'. Além disso, eu gosto do fato de que se pode separar a geração de gráficos a partir do layout (por exemplo caber 3 gráficos em uma página vs 2 x 2 de layout)
seanv507
3

Eu recomendo o Jupyter Notebook , que permite criar documentos que contêm blocos de código intercalados, plotagens e notas / documentação. O documento pode incluir remarcações e látex, que são renderizados automaticamente (como escrever em CrossValidated). Quando você executa um bloco de código, qualquer saída de texto e plotagens que ele gera são adicionadas inline ao documento. Você pode alterar um bloco de código e executar novamente para atualizar a saída / plotagens. Isso é bom para testar as coisas de maneira interativa (por exemplo, ajustar códigos / parâmetros para ver o que acontece). Eu acho que é mais fácil do que ter que exportar figuras e colá-las em um documento estático tradicional, especialmente se você mudar alguma coisa. Você pode exportar um notebook para PDF etc. para obter uma cópia estática.

É de código aberto e funciona com Python, R e outras linguagens. A interface é baseada em navegador, por isso é multiplataforma e fácil de compartilhar notebooks. Você pode executar o back-end em sua própria máquina ou hospedar notebooks em um site para que você / outras pessoas possam editar / visualizar / executá-los de qualquer lugar (o código será executado no servidor). Aparentemente, existe uma maneira de configurar o notebook como o frontend de um cluster de computação para cálculos paralelos.

user20160
fonte
Eu tentei isso em várias ocasiões, mas não estou realmente convencido de que funcionou muito bem: combinar código / gráficos / documentação e garantir que tudo esteja legível parece muito difícil na prática. Vi apresentações onde isso foi feito, mas suspeitei que o esforço envolvido seja considerável (como em qualquer apresentação). O que quero dizer sobre a EDA é que você está fazendo muitos gráficos, etc. - muitos para apresentar ... em uma apresentação que você mostra melhor. Gostaria de receber exemplos que contradizem minha impressão.
seanv507
2

Costumo fazer cada vez mais análises no R notebooksRStudio. Dessa forma, posso ter código, anotações e gráficos juntos em um só lugar e não preciso produzir PDFs o tempo todo - o que economiza tempo real. Você escreve texto e código em um editor e, clicando em um botão, o código é executado (e o gráfico desenhado) no lugar. Portanto, texto, código e plotagem permanecem perfeitamente juntos. Também é muito fácil converter em HTML ou PDF com alguns cliques do mouse. Eu não sei, o quão bem isso funciona com Python, como eu uso principalmente R.

Bernhard
fonte
2

Parece que você quer algum tipo de programação alfabetizada . Roferece Sweave e Knitr essa interface com o LaTeX . Existem outras opções para diferentes tipos de formatos de saída, como ODFweave para documentos editáveis ​​(como documentos do Word) e RMarkdown que pode gerar vários tipos (como HTML, além do mencionado acima). Outro software estatístico geralmente possui recursos análogos.

(Há um pouco de trabalho inicial ao usá-los. Normalmente faço projetos pontuais em vez de projetos de longo prazo que exigem relatórios regulares e semelhantes, por isso geralmente uso o método do @ NickCox de despejar ou copiar em um arquivo e escrever comentários sobre ele.)

- Reinstate Monica
fonte
1

In R: Às vezes, adiciono um gráfico extra a um pdf com algumas informações básicas. Isso é mais útil se as anotações forem curtas e se relacionarem com os dados da plotagem, para que você possa pasteobter informações adicionais. Por exemplo:

pdf("cars-plots.pdf")
plot(cars)
plot.new()
legend("center", bty = "n", legend =
           paste0("Data: 'cars'\n",
                  "cor = ", round(cor(cars)[1, 2], 2), "\n",
                  "N = ", nrow(cars), "\n",
                  Sys.Date()))
dev.off()

Como alternativa, se você tiver anotações mais longas, a produção de um relatório usando o R Markdown pode ser uma solução.

hplieninger
fonte