usar studio presentaciones informes generate con chunk r latex plot

studio - Obtener LaTeX en R Parcelas



sweave r studio install (8)

Me gustaría agregar la composición tipográfica LaTeX a los elementos de los gráficos en R (por ejemplo, el título, las etiquetas de los ejes, las anotaciones, etc.) utilizando la combinación de base/lattice o con ggplot2 .

Preguntas:

  • ¿Hay alguna forma de obtener LaTeX en parcelas con estos paquetes y, de ser así, cómo se hace?
  • Si no, ¿hay paquetes adicionales necesarios para lograr esto?

Por ejemplo, en Python matplotlib compila LaTeX través de los paquetes text.usetex como se discutió aquí: http://www.scipy.org/Cookbook/Matplotlib/UsingTex

¿Hay un proceso similar por el cual tales diagramas se pueden generar en R ?


Aquí hay algo de mis propios informes de laboratorio.

  • tickzDevice exporta imágenes tikz para LaTeX
  • Tenga en cuenta que en ciertos casos "//" convierte en "/" y "$" convierte en "$/" como en el siguiente código R: "$z//frac{a}{b}$" -> "$/z/frac{a}{b}$/"

  • También xtable exporta tablas al código de látex

El código:

library(reshape2) library(plyr) library(ggplot2) library(systemfit) library(xtable) require(graphics) require(tikzDevice) setwd("~/DataFolder/") Lab5p9 <- read.csv (file="~/DataFolder/Lab5part9.csv", comment.char="#") AR <- subset(Lab5p9,Region == "Forward.Active") # make sure the data names aren''t already in latex format, it interferes with the ggplot ~ # tikzDecice combo colnames(AR) <- c("$V_{BB}[V]$", "$V_{RB}[V]$" , "$V_{RC}[V]$" , "$I_B[//mu A]$" , "IC" , "$V_{BE}[V]$" , "$V_{CE}[V]$" , "beta" , "$I_E[mA]$") # make sure the working directory is where you want your tikz file to go setwd("~/TexImageFolder/") # export plot as a .tex file in the tikz format tikz(''betaplot.tex'', width = 6,height = 3.5,pointsize = 12) #define plot name size and font size #define plot margin widths par(mar=c(3,5,3,5)) # The syntax is mar=c(bottom, left, top, right). ggplot(AR, aes(x=IC, y=beta)) + # define data set geom_point(colour="#000000",size=1.5) + # use points geom_smooth(method=loess,span=2) + # use smooth theme_bw() + # no grey background xlab("$I_C[mA]$") + # x axis label in latex format ylab ("$//beta$") + # y axis label in latex format theme(axis.title.y=element_text(angle=0)) + # rotate y axis label theme(axis.title.x=element_text(vjust=-0.5)) + # adjust x axis label down theme(axis.title.y=element_text(hjust=-0.5)) + # adjust y axis lable left theme(panel.grid.major=element_line(colour="grey80", size=0.5)) +# major grid color theme(panel.grid.minor=element_line(colour="grey95", size=0.4)) +# minor grid color scale_x_continuous(minor_breaks=seq(0,9.5,by=0.5)) +# adjust x minor grid spacing scale_y_continuous(minor_breaks=seq(170,185,by=0.5)) + # adjust y minor grid spacing theme(panel.border=element_rect(colour="black",size=.75))# border color and size dev.off() # export file and exit tikzDevice function



Aquí hay una función genial que le permite usar la funcionalidad plotmath, pero con las expresiones almacenadas como objetos del modo de caracteres. Esto le permite manipularlos programáticamente utilizando funciones de pegar o expresión regular. No uso ggplot, pero debería funcionar allí también:

express <- function(char.expressions){ return(parse(text=paste(char.expressions,collapse=";"))) } par(mar=c(6,6,1,1)) plot(0,0,xlim=sym(),ylim=sym(),xaxt="n",yaxt="n",mgp=c(4,0.2,0), xlab="axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8)", ylab="axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)") tick.labels <- paste("x >=",(-9:9)/10) # this is what you get if you just use tick.labels the regular way: axis(1,(-9:9)/10,tick.labels,las=2,cex.axis=0.8) # but if you express() them... voila! axis(2,(-9:9)/10,express(tick.labels),las=1,cex.axis=0.8)


Como fue robado de here , el siguiente comando usa correctamente LaTeX para dibujar el título:

plot(1, main=expression(beta[1]))

Ver ?plotmath para más detalles.


Lo hice hace unos años al enviar a un formato .fig en lugar de directamente a un .pdf; usted escribe los títulos incluyendo el código de látex y usa fig2ps o fig2pdf para crear el archivo gráfico final. La configuración que tuve que hacer esto rompió con R 2.5; si tuviera que hacerlo de nuevo buscaría en tikz, pero lo incluyo de todos modos como otra opción posible.

Mis notas sobre cómo lo hice usando Sweave están aquí: http://www.stat.umn.edu/~arendahl/computing




Este script contiene una función latex2exp para traducir aproximadamente las fórmulas de LaTeX a las expresiones de gráfico de R. Puede usarlo en cualquier lugar donde pueda ingresar anotaciones matemáticas, como etiquetas de ejes, etiquetas de leyenda y texto general.

Por ejemplo:

x <- seq(0, 4, length.out=100) alpha <- 1:5 plot(x, xlim=c(0, 4), ylim=c(0, 10), xlab=''x'', ylab=latex2exp(''//alpha x^//alpha//text{, where }//alpha //in //text{1:5}''), type=''n'') for (a in alpha) lines(x, a*x^a, col=a) legend(''topleft'', legend=latex2exp(sprintf("//alpha = %d", alpha)), lwd=1, col=alpha)

produce esta trama