R: Función para exportar la trama R actualmente activa a Powerpoint / Word / LibreOffice
Actualmente siempre exporto mis gráficos R a Powerpoint en formato vectorial usando el excelenteReporteRs
paquete, como en
library(ReporteRs)
myplot = function() print(qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)))
doc = pptx()
doc = addSlide(doc, slide.layout = "Blank")
doc = addPlot( doc, myplot, vector.graphic = TRUE, fontname="Arial",
offx = 0.1*dim(doc)$slide.dim["width"], offy = 0.05*dim(doc)$slide.dim["height"],
width = 0.8*dim(doc)$slide.dim["width"], height = 0.9*dim(doc)$slide.dim["height"])
writeDoc( doc, "plot.pptx")
Lo que encuentro inconveniente en este flujo de trabajo es que ahora tengo que ajustar mis comandos de trazado en una función (conprint()
paralattice
oggplot2
parcelas, o simplementereturn(plot())
para trazados base R), y que no me gusta tener que especificar manualmente los desplazamientos y el tamaño (generalmente prefiero obtener un gráfico centrado casi de relleno de página en mi diapositiva). Me preguntaba si en cambio no sería posible hacer tu trama primero (trama base R,lattice
trama oggplot2
trazar) y luego definir una funciónexport2PPT
que captura la salida de su dispositivo gráfico actual como una función y la pasa aReporteRs
yaddPlot
para exportar su trama como Powerpoint (centrado y adecuadamente escalado), en analogía para funcionardev.copy2pdf
que funciona de la misma manera para exportar a PDF?
Y una vez que tenemos esa función, tal vez inclusomodificar elgrDevices
código fuente de funcioneswindows () y savePlot () tener un comando adicional Archivo ... Guardar como Powerpoint si uno estaba usando elwindows()
¿dispositivo? ¿O es algo que la gente de R Core debe hacer?
Especialmente para usar en el aula, sería super útil, creo, dado el dominio de MS Office / LibreOffice. (ya que Powerpoint es mucho más fácil de editar que PDF, lo que permite realizar fácilmente pequeños cambios en el diseño final de los gráficos R, y la salida vectorial es al menos tan buena como PDF, además la transparencia también es totalmente compatible; para PDF encuentro que la importación en Inkscape a menudo es un poco defectuoso, a menos que uno use Adobe Illustrator)
¿Alguien que sepa cómo hacer esto?
EDITAR: Mientras tanto, encontré la solución, y envolví las funciones de exportación para exportar el diagrama R actualmente activo a PowerPoint en un paquete en CRAN, veahttps://cran.r-project.org/web/packages/export/index.html yhttps://github.com/tomwenseleers/export para uso de demostración. El paquete ahora usa el paquete oficial como backend, ya que ReporteRs está en desuso ...