Início > gráficos, sweave > Animações em documentos PDF produzidos com Sweave

Animações em documentos PDF produzidos com Sweave

Animação que representa as probabilidades obtidas pela tabela da distribuição normal padrão.

O pacote do animate do \LaTeX, desenvolvido por Alexander Grahn, permite que sejam inseridas animações em documentos PDF. Esses arquivos devem ser visualizados em leitores de PDF da Adobe. No Linux podemos usar o acroread.

O procedimento é simples. Vou fazer isso em um documento Sweave. Primeiro confeccionamos diversas figuras que formam uma seqüência de ações. Tais figuras podem ser feitas com controladores de fluxo como a função for() e similares. Inclusive, o pacote animation do R, desenvolvido por Yihui Xie, oferece implementações para confecção de animações. As figuras são salvas em um diretório. Para adicioná-las ao documento na forma de animação (com botões de play, stop) basta usar o comando \animategraphics{}.

O arquivo Sweave abaixo (*.Rnw) gera um arquivo PDF com a tabela da distribuição normal padrão e uma animação que representa a área integrada correspondente aos valores da tabela. Veja o PDF. Para gerar gifs animados como R veja o artigo do Mark Heckmann no R you ready?. Até a próxima ridícula.

\documentclass[a4paper]{article}
\usepackage[brazil]{babel}
\usepackage{Sweave}
\usepackage{animate}
\thispagestyle{empty}

\begin{document}

\begin{center}
{\Large Tabela da distribui\c{c}\~{a}o normal padr\~{a}o}\\ \vspace{2ex}
{\large Walmes Zeviani -- LEG/UFPR}  \\
\end{center}

<<echo=false, results=hide>>=
#-----------------------------------------------------------------------------
dir.create("exemplos")
png(file="exemplos/qnorm%1d.png", width=500, height=250)
par(mar=c(4,4,1,1))
for(q in seq(0, 4,l=100)){
  curve(dnorm(x, 0, 1), -5, 5, ylab="f(z)", xlab="z")
  x <- seq(0, q, by=0.01)
  fx <- dnorm(x, 0, 1)
  polygon(c(x, rev(x)),
          c(fx, rep(0, length(fx))),
          col="gray90")
  abline(v=0, lty=2)
  Pr <- round(pnorm(q, 0, 1)-0.5, digits=3)
  qq <- round(q, digits=3)
  legend("topleft", bty="n", fill="gray90",
         legend=substitute(P(0<~Z<=~q)==Pr, list(q=qq, Pr=Pr)))
}
dev.off()
#-----------------------------------------------------------------------------
@ 

<<echo=false, results=hide>>=
#-----------------------------------------------------------------------------
require(xtable)
options(OutDec=",")
q <- seq(0,3.99,by=0.01)
p <- pnorm(q)-0.5
m <- matrix(p, byrow=TRUE, ncol=10)
rownames(m) <- gsub("\\.", ",", formatC(seq(0,3.9,0.1), dig=1, format="f"))
colnames(m) <- 0:9/100
#-----------------------------------------------------------------------------
@

\begin{center}
\animategraphics[controls, loop, width=0.75\textwidth]{10}{exemplos/qnorm}{1}{100}
\end{center}

\begin{center}
\small\addtolength{\tabcolsep}{-3pt}
{\footnotesize
<<echo=false, results=tex>>=
#-----------------------------------------------------------------------------
print(xtable(m, digits=5), floating=FALSE)
#-----------------------------------------------------------------------------
@ 
}
\end{center}
\end{document}

Anúncios
  1. diogoferrari
    31/08/2012 às 22:10

    Parabéns pelo seu blog. Visito frequentemente. Sempre tem coisa interessante. Uma questão off-topic: que você usa para postar esses caracteres do latex e os códigos do R, que permitem abrir em tela separada o script?

    • Walmes Zeviani
      31/08/2012 às 22:33

      Obrigado por ler e gostar do blog. Para código Latex é só colocar dentro do ambiente "$"latex sua_expressão_aqui"$" (não use aspas para o $, ok?), por exemplo "$"latex \sqrt{x}"$" produz \sqrt{x}. O código R também é colocado em ambiente especifico, no caso abre com "["sourcecode language="r""]" e fecha com "["/sourcecode"]" (não use aspas para os colchetes). O wordpress oferece diversas opções para colocar código, muito do que eu descobri foi pegando de outros blogs que acompanho.

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: