Trazo una regresión lineal simple usando R. Me gustaría guardar esa imagen como PNG o JPEG, ¿es posible hacerlo automáticamente? (a través del código)
Hay dos preguntas diferentes: Primero, ya estoy mirando la trama en mi monitor y me gustaría guardarla tal como está. En segundo lugar, todavía no he generado el diagrama, pero me gustaría guardarlo directamente en el disco cuando ejecuto mi código de diagrama.
Respuestas:
Hay dos preguntas estrechamente relacionadas y una respuesta para cada una.
1. En el futuro se generará una imagen en mi script, ¿cómo la guardo en el disco?
Para guardar una trama, debe hacer lo siguiente:
png()
,bmp()
,pdf()
o similaresdev.off()
Algún código de ejemplo para guardar la trama en un
png
archivo:Esto se describe en la página de ayuda (combinado) para los formatos gráficos
?png
,?bmp
,?jpeg
y?tiff
así como en la página de ayuda separada para?pdf
.Sin embargo, tenga en cuenta que la imagen puede verse diferente en el disco con respecto al mismo diagrama trazado directamente en su pantalla, por ejemplo, si ha cambiado el tamaño de la ventana en pantalla.
Tenga en cuenta que si su diagrama está hecho por cualquiera de los dos
lattice
oggplot2
tiene que imprimirlo explícitamente. Vea esta respuesta que explica esto con más detalle y también enlaces a las preguntas frecuentes de R: qplot de ggplot no se ejecuta en el abastecimiento2. Actualmente estoy viendo un diagrama en mi pantalla y quiero copiarlo "tal cual" al disco.
Esto debería copiar la imagen perfectamente, respetando cualquier cambio de tamaño que haya hecho a la ventana interactiva. Puede, como en la primera parte de esta respuesta, reemplazar
pdf
con otros tipos de archivos comopng
.fuente
getwd()
dev.print
. Hay dos preguntas estrechamente relacionadas que creo que necesitan respuestas diferentes. La segunda subpregunta es básicamente "¿Cómo guardo una imagen que ya he trazado en mi pantalla?". Disculpas si mi edición no es muy buena, no dudes en mejorar mis ediciones.m3=garchFit(~arma(3,0)+garch(1,1))
yplot(m3)
.Si desea seguir viendo la trama en R, otra opción es usar
dev.copy
:Si llega a un desorden de demasiadas ventanas de trazado en R, use
graphics.off()
para cerrar todas las ventanas de trazado.fuente
dev.print
es mejor ya que copia la imagen de la pantalla exactamente.dev.copy
fuerza que cada imagen sea cuadrada por defecto. Esto es frustrante si ha configurado todo muy bien de forma interactivadev.print()
con los parámetros ancho y alto para definir las dimensiones. por ejemplodev.copy(device = png, filename = 'MyPlot.png', width = 1000, height = 500) dev.off()
Si usa
ggplot2
la forma preferida de guardar es usarggsave
. Primero tienes que trazar, después de crear la trama que llamasggsave
:El formato de la imagen está determinado por la extensión que elija para el nombre del archivo. Los parámetros adicionales se pueden pasar a
ggsave
, en particularwidth
,height
ydpi
.fuente
dev
, esta solución funcionó en una máquina virtual sin dispositivos gráficos.Me gusta esto
o esto
o esto
Y probablemente otros también. Todos se enumeran juntos en las páginas de ayuda.
fuente
Para la primera pregunta, creo que soy
dev.print
el mejor cuando trabajo de forma interactiva. Primero, configura su trama visualmente y cuando está satisfecho con lo que ve, puede pedirle a R que guarde la trama actual en el discoPuede reemplazar
pdf
con otros formatos comopng
.Esto copiará la imagen exactamente como la ve en la pantalla. El problema
dev.copy
es que la imagen a menudo es diferente y no recuerda el tamaño de la ventana y la relación de aspecto: obliga a que el gráfico sea cuadrado de forma predeterminada.Para la segunda pregunta (como ya han respondido otros), debe dirigir la salida al disco antes de ejecutar sus comandos de trazado
fuente
Si usa R Studio http://rstudio.org/ hay un menú especial para guardar su trama en cualquier formato que desee y en cualquier resolución que elija
fuente
Si abre un dispositivo usando
png()
, etc.bmp()
,pdf()
como sugiere Andrie (la mejor respuesta), las ventanas con gráficos no se abrirán, solo se crearán archivos * .png, * bmp o * .pdf. Esto es conveniente en cálculos masivos, ya que R puede manejar solo un número limitado de ventanas gráficas.Sin embargo, si desea ver los gráficos y también tenerlos guardados, llame
savePlot(filename, type)
después de que se dibujen los gráficos y la ventana que los contiene esté activa.fuente
fuente
Para agregar a estas respuestas, si tiene una secuencia de comandos R que contiene llamadas que generan trazados en la pantalla (el dispositivo nativo), todos estos se pueden guardar en un archivo pdf (el dispositivo predeterminado para un shell no interactivo) "Rplots.pdf "(el nombre predeterminado) al redirigir el script a R desde la terminal (suponiendo que esté ejecutando Linux u OS X), por ejemplo:
Esto podría convertirse a jpg / png según sea necesario
fuente
En algunos casos, uno quiere guardar e imprimir un diagrama base r. Pasé un poco de tiempo y se me ocurrió esta función de utilidad:
Tenga en cuenta que se debe usar
quote
, de lo contrario laplot(x)
llamada se ejecuta en el entorno global yNULL
se pasa abasesave()
.fuente
fuente