Elegir entre qplot () y ggplot () en ggplot2 [cerrado]

98

Estoy empezando a usar el gran ggplot2paquete para trazar en R, y una de las primeras cosas que me pregunto antes de cada trama es "bueno, ¿usaré qploto ggplot?"

Entiendo que qplot proporciona una sintaxis más simple a la vez que ggplotpermite las máximas funciones y flexibilidad, pero ¿cuál es la función que más usa y tiene algunos casos de uso precisos para cada uno? ¿Lo usa principalmente qploty ggplotsolo para parcelas complejas, o lo usa todo el tiempo ggplot?

¡Gracias por tus comentarios!

juba
fuente

Respuestas:

81

En cuanto a mí, si tanto qplot como ggplot están disponibles, el criterio depende de si los datos se almacenan en data.frame o en variables separadas.

x<-1:10
y<-rnorm(10)

qplot(x,y, geom="line") # I will use this
ggplot(data.frame(x,y), aes(x,y)) + geom_line() # verbose

d <- data.frame(x, y)

qplot(x, y, data=d, geom="line") 
ggplot(d, aes(x,y)) + geom_line() # I will use this

Por supuesto, los gráficos más complejos requieren ggplot (), y normalmente almaceno datos en data.frame, por lo que, en mi experiencia, rara vez uso qplot.

Y suena bien usar siempre ggplot (). Mientras qplot ahorra escribir, pierde muchas funcionalidades.

Kohske
fuente
2
Aceptado, incluso si cada respuesta es útil, ¡gracias a todos!
juba
Gran pregunta y excelente respuesta.
d8aninja
excelente respuesta de hecho gracias
Homam Bahrani
17

Soy nuevo en R, pero solo pensé en compartir esto.

 a <- c(1,2,3)

 b <- c(2,3,4)

 x <- qplot(a,b)

 y <- ggplot(data.frame(a,b), aes(a,b)) +geom_line()

Si cambio el valor de las variables ayb y luego graficar x, se tendrán en cuenta los valores cambiados donde y no lo haría. Por lo tanto, mientras se escribe, sería bueno usar ggplot, ya que si usa qplot, todos los gráficos serán iguales a las últimas referencias proporcionadas a qplot.

anishek
fuente
11

Creo que depende de con qué frecuencia y con qué propósito pretenda usar ggplot2.

Utilizo principalmente ggplot2 para gráficos en publicaciones. Esto significa que tiendo a necesitar las funciones más avanzadas y, por lo tanto, nunca me he molestado en conocerlas qplot. Además, dado que tengo alrededor de cuatro publicaciones al año, no estoy usando ggplot2 lo suficiente como para estar realmente cómodo con la sintaxis, por lo que concentrarme en un solo aspecto parece óptimo.

Sin embargo, si obtiene nuevos conjuntos de datos cada semana, probablemente esté interesado en explorar rápidamente los conjuntos de datos y producir gráficos de buena calidad. En este caso, aprenda ambos. Obtendrá suficiente práctica con la sintaxis y (eventualmente) ahorrará tiempo con qplot.

csgillespie
fuente
8

Juba, he descubierto que se puede usar qplot para la mayoría de las necesidades básicas de trazado. Es lo suficientemente simple, y los valores predeterminados bastante razonables, que mis estudiantes de pregrado lo usen exclusivamente y pueden producir excelentes parcelas con experiencia limitada. Y el gráfico creado por qplot [p <- qplot (etc)] puede ser modificado por cualquiera de los comandos completos que proporciona ggplot2, lo cual es útil (todos se almacenan de la misma manera, sin importar cómo fueron creados). Así que personalmente utilizo qplot para casi todo y guardo ggplot para el interior de las funciones.

Bryan Hanson
fuente
5
  • qplot es la opción más simple si se trata de vectores de entrada
  • ggplot requiere un data.frame como estructura de datos de entrada.

Cuando desea producir un histograma, qplot solo necesita el vector de ocurrencias

#rnorm 
x <- rnorm(10)

#ggplot2 package: qplot
qplot(x, geom="histogram")

#ggplot2: using straight ggplot (requires conversion to data.frame)
ggplot(data.frame(x), aes(x)) + geom_histogram()
natbusa
fuente
3

Una variante más mía: uso qplotcuando escribo directamente en la consola, yggplot escribo cuando escribo scripts. Pero después de descubrir una y otra vez que quiero recrear un diagrama que escribí en la consola 15 minutos antes, ahora escribo casi todos en un script, por lo que uso ggplot casi todo el tiempo.

(¡Interesante ver la diversidad de respuestas!)

Matt Parker
fuente