El qplot de ggplot no se ejecuta en el abastecimiento
Supongamos que tengo 2 archivos fuente, el primero con nombre example1.r
y el segundo example2.r
(que se muestran a continuación).
ejemplo1.r
plot(1:10,1:10)
ejemplo2.r
qplot(1:10,1:10)
Cuando obtengo el ejemplo1.r, se dibuja el gráfico. Sin embargo, no es así cuando obtengo example2.r. ¿Cuál es la solución aquí?
(qplot en example2.r es la función de ggplot2 )
Actualizar :
- Archivos .R:
source
la opciónprint.eval=TRUE
conducirá a un comportamiento de impresión del resultado de la evaluación como en la línea de comando interactiva.
source("Script.R", print.eval=TRUE)
- Archivos .Rnw:
knitr
por defecto emula el comportamiento de la línea de comando interactiva wrt.print
En g. Tenga en cuenta queknitr
también se puede especificar como motor Sweaving para viñetas del paquete R.
Esta es mi respuesta original. Pero tenga en cuenta que esta solución alternativa ahora, en mi humilde opinión, está completamente obsoleta (y siempre fue buena solo para un pequeño nicho perezoso).
Esta es la famosa pregunta frecuente 7.22: ¿Por qué no funcionan los gráficos de celosía/enrejado?.
Para gráficos de cuadrícula como ggplot2 o lattice, es necesario imprimir el objeto gráfico para poder dibujarlo.
De forma interactiva en la línea de comando, esto se hace automáticamente. En cualquier otro lugar (dentro de los archivos que se obtendrán, bucles, funciones, fragmentos de Sweave) debe imprimirlo explícitamente.
print (qplot (1 : 10, 1 : 10))
Alternativamente, puede redefinir qplot
para realizar la impresión:
qplot <- function (x, y = NULL, z = NULL, ...) {
p <- ggplot2::qplot (x = x, y = y, z = z, ...)
print (p)
}
(Esto cambia las etiquetas de los ejes a xey).
Utilizo este enfoque en viñetas en las que quiero escribir código exactamente como lo escribiría un usuario en una sesión interactiva.