este problema se puede solucionar de diversas maneras, sin embargo te compartimos la solución más completa en nuestra opinión.
Solución:
La solución es llamar explícitamente print()
en el objeto ggplot:
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
print(p)
ggplot
la función devuelve el objeto de la clase ggplot; ggplot2 funciona por sobrecarga print
función para comportarse de manera diferente en los objetos de la clase ggplot: en lugar de imprimirlos en STDOUT, crea un gráfico.
Todo funciona bien en modo interactivo, porque R asume que la mayoría de los comandos se ejecutan print()
función. Esto es para nuestra comodidad y nos permite escribir rnorm(1)
y obtener cualquier resultado visible. Cuando se utiliza el comando Ejecutar selección actual (Ctrl+Enter
), RStudio se comporta como si cada línea seleccionada se escribiera en modo interactivo y se ejecutara. Puede verificar eso revisando su historial de comandos en Console
panel después de ejecutar algunas líneas seleccionadas.
Pero este modo conveniente se abandona cuando el archivo es leído por source()
. Dado que esta función está diseñada para ejecutar secuencias de comandos R (potencialmente largas y computacionalmente costosas), no es deseable contaminar STDOUT con mensajes de baja prioridad. Es por eso source()
de forma predeterminada, solo se generará un mensaje de error. Si quieres algo más, tienes que pedirlo explícitamente.
aunque es una pregunta bastante antigua. Tuve el mismo problema y encontré una solución rápida, si desea usar el botón "fuente" en el cuadro de edición de R studio.
simplemente puede activar "fuente con eco" (Ctrl + Shift + Enter) y la trama se muestra como se esperaba
Recientemente me encontré con esta pregunta y me di cuenta de que la forma más actualizada es llamar show(p)
después de crear la trama.
Si tienes algún titubeo o disposición de regenerar nuestro división te mencionamos añadir un comentario y con gusto lo ojearemos.