La representación gráfica de datos numéricos es esencial para poder observar el comportamiento de los mismos y observar tendencias. Somos animales visuales, y Una figura vale más que mil números, en clara alusión a la expresión Una imagen vale más que mil palabras. En R hay multitud de paquetes y comandos para representar figuras. Pero sin duda alguna, los comandos presentes en el paquete ggplot2 ganan por goleada al resto. Y uno de estos comandos es qplot. Aquí aprenderemos a usar este comando en profundidad para realizar gráficos profesionales. Para que funcione qplot es imprescindible cargar primero el paquete ggplot2.
Quiero leer...
R Commander: instalar y cargar paquetes estadísticos
El lenguaje estadístico R le debe gran parte de su fama a las posibilidades casi infinitas de personalizar, analizar y representar gráficamente datos estadísticos. Y esta potencialidad viene, principalmente, por la posibilidad de instalar paquetes … Leer más…
Cargar ejemplos de paquetes estadísticos en R Commander
En muchas ocasiones, al leer cómo se realiza un análisis estadístico concreto recurrimos a foros, tutoriales o blogs en los que te ofrecen explicaciones de muy diversa índole. Y normalmente muchos de ellos recurren a … Leer más…
qplot(): ¿cómo es su estructura y cuáles son sus atributos?
El comando qplot() permite realizar unos gráficos y figuras de altísimo detalle y calidad. Pero para ello es necesario conocer cómo se escribe y ejecuta correctamente. A continuación vamos a ver la secuencia del comando:
Descripción de los atributos de qplot() para personalizar la figura
Su gran cantidad de atributos permite realizar figuras muy personalizadas. A continuación los describimos brevemente:
Atributo | Descripción |
alpha | Hace referencia a la transparencia de los elementos que se solapan. Sus valores se sitúan entre 0 (transparencia total) y 1 (opacidad total). |
color, shape, size, fill | Estos atributos son útiles para poder realizar figuras dividiendo por categorías de las variables. Es decir, si tenemos una variable con varias categorías, dependiendo del atributo usado, se realizará una distinción entre ellas por color, forma, tamaño y relleno. |
data | Incluir el nombre de los datos con los que queremos hacer la figura |
facets | Crea un gráfico de trellis especificando variables condicionales. Su valor se expresa como rowvar ~ colvar. |
geom | Especifica los objetos geométricos que definen el tipo de gráfico. Se expresa con una palabra (o varias) y tiene las siguientes opciones: «point», «smooth», «boxplot», «line», «histogram», «density», «bar», and «jitter». |
main, sub | Indica el título y el subtítulo de la figura respectivamente |
method, formula | Si geom=»smooth», se añade una línea de tendencia con su intervalo de confianza al 95% por defecto
Method puede coger los valores «lm» (para regresiones), «gam» (para modelos generalizados aditivos; requiere cargar el paquete mgcv) y «rlm» (para regresiones robustas, requiere cargar el paquete MASS). Formula da la forma del ajuste (ver más abajo para ver ejemplos). |
x, y | Hay que indicar cuáles son las variables que se van a comportar como X e Y respectivamente. Si se va a representar sólo una variable, hay que omitir el valor y. |
xlab, ylab | Si queréis personalizar el nombre de la variable X e Y, debéis de utilizar estos atributos. Por ejemplo: xlab=»Variable X»). |
xlim,ylim | Si queréis restringir el intervalo que se representa en el eje X e Y, debéis utilizar estos atributos. Por ejemplo: ylim=c(0,20). El intervalo que se representa en el eje Y está comprendido entre los valores 0 y 20. |
Datos para usar como ejemplo
Os muestro la estructura de los datos que vamos a emplear para que podáis aplicarlo a vuestros propios datos numéricos.
Vemos que tenemos 4 columnas, 2 de ellas con datos cualitativos (molar, con los valores M1 y M2, y sigla, con 21 categorías, de las que se muestran solo SP42 y SP65 en la imagen anterior) y 2 de ellas con datos cuantitativos (X e Y).
Visualización de los datos en qplot() usando los atributos color, shape, size y alpha
Vamos a empezar a jugar por fin con qplot(). De izquierda a derecha y de arriba a abajo, se han ejecutado los siguientes comandos:
[sourcecode lang=»r»] qplot(x = X,y = Y,data = Datos)qplot(x = X,y = Y,data = Datos, color = molar)
qplot(x = X,y = Y,data = Datos, color = sigla)
qplot(x = X,y = Y,data = Datos, color = sigla, shape = molar)
qplot(x = X,y = Y,data = Datos, shape = molar)
qplot(x = X,y = Y,data = Datos, shape = molar, color = molar)
qplot(x = X,y = Y,data = Datos, size = sigla, color = molar, shape = molar, alpha = 0.01)
[/sourcecode]
Podemos observar cómo es posible cambiar la forma (shape), color, tamaño (size) y transparencia (alpha) para todos los datos en conjunto (sin tener en cuenta las variables categóricas o cualitativas), y teniéndolas en cuenta. Se pueden hacer cuantas combinaciones queramos. Nosotros sólo hemos hecho unas pocas para ilustrarlo.
Representación de regresiones utilizando los atributos geom, method y formula
Vamos a hacer aquí una distinción entre usar, por un lado, todos los datos cuantitativos conjuntamente (X e Y) sin tener en cuenta las categorías de las variables molar y sigla, y por otro, dividiendo en grupos según esas variables categóricas.
Regresiones con todos los datos cuantitativos conjuntos
Usando todos los datos cuantitativos en conjunto, sin tener en cuenta las categorías de las variables molar ni sigla, vamos a analizar varios ejemplos utilizando diversos comandos. Como anteriormente, están escritos según la posición de la figura siguiente, de izquierda a derecha y de arriba a abajo.
qplot(x = X, y = Y, data = Datos, geom = "smooth")
qplot(x = X, y = Y, data = Datos, geom = "smooth", method = "lm")
qplot(x = X, y = Y, data = Datos, geom = "smooth", method = "lm", formula = y~x)
qplot(x = X, y = Y, data = Datos, geom = "smooth", formula = y~poly(x,2))
qplot(x = X, y = Y, data = Datos, geom = "smooth", method = "lm", formula = y~poly(x,2))
[/sourcecode]
Una cosa importante, para realizar regresiones es obligatorio añadir el atributo geom=»smooth». Aunque podemos añadirle más atributos, como en el caso de «point» (arriba izquierda).
Como podemos observar en esta figura, al aplicar exclusivamente method=»lm», nos hace una recta. Si queremos añadir una regresión polinomial tenemos que añadir el atributo formula.
2 grados: formula = y~poly(x,2)
3 grados: formula = y~poly(x,3)
n grados: formula = y~poly(x,n)
Regresiones teniendo en cuenta los factores de las variables categóricas
Continuamos jugando con qplot. Ahora nos centraremos en hacer distinción por categorías, teniendo en cuenta las variables categóricas molar y sigla.
[sourcecode lang=»r»] qplot(x=X,y=Y,data=Datos,geom="smooth",color=molar)qplot(x=X,y=Y,data=Datos,geom="smooth",color=molar,formula=y~poly(x,2))
qplot(x=X,y=Y,data=Datos,geom="smooth",color=molar,method="lm",formula=y~poly(x,2))
qplot(x=X,y=Y,data=Datos,geom="smooth",color=sigla,method="lm",formula=y~poly(x,2))
[/sourcecode]
Realizar otros gráficos con el atributo geom: boxplot (diagrama de caja y bigotes) y líneas
Aparte de visualizar los datos y hacer regresiones, qplot() también puede realizar otras figuras, como se ve a continuación. Y como siempre, se puede jugar con las categorías. Los comandos que se han ejecutado han sido los siguientes:
[sourcecode lang=»r»] qplot(x=X,y=Y,data=Datos, geom="boxplot")qplot(x=X,y=Y,data=Datos, geom="boxplot",color=molar)
qplot(x=X,y=Y,data=Datos, geom="line")
qplot(x=X,y=Y,data=Datos, geom="line",color=molar)
[/sourcecode]
Vídeos ilustrativos del uso de qplot()
A continuación os dejo unos vídeotutoriales muy interesantes donde se aplica en detalle qplot. Espero que os sirvan para poder completar y manejar a la perfección este comando tan versátil y útil.
Referencias
- Getting started with qplot
- Graphics with ggplot2
Hola,
Muy interesante artículo del qplot! La verdad es que el paquete ggplot2 es una pasada para crear gráficos que molen y profesionales. Además se puede utilizar plotly para que los gráficos sean interactivos y insertarlos en presentacion power point, PDFs etc…
Aquí os dejo un tutorial muy interesante de ggplot2 de la universidad de Harvard.
¡Ahora a practicar! 😉
PD: compartido en la redes. Gracias!
Jordi