Pregunta

Estoy intentando crear un informe de tejido que contenga algunos gráficos realizados con ggplot2.Aunque estoy buscando algún entorno a largo plazo, aquí solo uso un archivo .Rnw simple que solo contiene el código y la trama.

 \documentclass[a4paper]{article}
 \SweaveOpts{echo=FALSE}
 \usepackage{a4wide}

  \begin{document}

  \begin{figure}[htbp]
  \begin{center}
 <<>>=
 library(ggplot2)
 x=rnorm(100)
 qplot(x)

 @
 \caption{My Graph}
 \end{center}
  \end{figure}
\end{document}

Desafortunadamente, el gráfico no se crea, solo obtengo un archivo .pdf y .eps corrupto.Aunque obtengo un bonito archivo .tex que parece funcionar excepto por los gráficos.Utilizo el siguiente código básico para crearlo:

 Sweave("myfile.Rnw")

Acabo de encontrar una publicación anterior en la web que discutía problemas con la transparencia y sweave/ggplot2, pero nada que pudiera haber ayudado.También probé el paquete relajado, que tampoco ayudó.Por cierto, ¿hay alguna novedad sobre el paquete decumar?

¿Fue útil?

Solución

qplot() produce objetos, no una salida gráfica.Puede parecer que sí cuando lo ejecuta, pero eso se debe a que sin asignación, R imprime automáticamente la salida de qplot().Para integrarlo en Sweave, envuélvalo print() alrededor qplot(), o asignar la salida de qplot() a algo, luego envuélvelo en print().

...
<<fig = T, echo = F>>=
 library(ggplot2)
 x=rnorm(100)
 p <- qplot(x)
 print(p)
@
...

Eso debería funcionar.yo suelo ggplot2 Gráficos en mis documentos de Sweave todo el tiempo.

Otros consejos

Tienes que envolverlo alrededor de print() para hacer que funcione en un sueño.

En realidad, si bien ambas respuestas anteriores son correctas, su problema es otra cosa.

Debe asegurarse de que todo el bloque de código esté a la izquierda de la página (aparte de la iAndentación en funciones).Una vez más, no tengo idea de por qué, pero esto causa problemas para el sueño.

Después de garantizar que todos los códigos (y encabezado / pie de página para el código de código) estuvieran a la izquierda de la página (y agregando una declaración de impresión), entonces su ejemplo funciona para mí.

Por cierto, aprendí hoy que puede crear un entorno en torno a su código en los documentos de un salvo (que no estaba al tanto, y me salvaré mucho tiempo).¡Buen viejo cielo, enseñándole algo nuevo incluso cuando respondes una pregunta!

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top