Gráficas de lineas y puntos. Comparativo

Librerias

ggplot, dplyr

Datos

trparasit.csv, contiene datos sintéticos de temperatura y la media de parasitismo con su error estándar. Son datos de parasitismo de Tamarixia radiata sobre Diaphorina citri a diferentes temperaturas (Gomez-Torres et al. 2014. Rev. Bras. Entomol. 58(3): 291-295).

rsC.csv, contiene datos sintéticos de un experimento factorial de fertilidad en caña de azúcar. Se probaron tres productos Nitrogeno N, Fosforo N y Potasio K, la respuesta fue rendimiento (ton/ha).

Los archivos se encuentran aquí:

https://sites.google.com/site/digitcognem/workfiles

Ejemplo 1. Análisis Comparativo. Parasitismo a diferentes temperaturas

Para realizar la figura de puntos con su intervalo de error estándar de la media, las instrucciones son:

tr<-ggplot(trparasit,aes(TEMPERATURA,PARASITADOS)) + geom_line() + geom_point(size=8) + geom_errorbar(aes(ymin = PARASITADOS-EEp, ymax = PARASITADOS+EEp), width = 0.4)

Lo cual genera la siguiente figura:

ggplot(trparasit,aes(TEMPERATURA,PARASITADOS))

Estos comandos instruyen a ggplot a emplear la tabla trparasit, con ejes X e Y que son TEMPERATURA y PARASITADOS respectivamente

geom_line()

Dibuja la linea

geom_point(size=8)

Dibuja los puntos con tamaño 8

geom_errorbar(aes(ymin = PARASITADOS-EEp, ymax = PARASITADOS+EEp), width = 0.4)

Dibuja las lineas verticales arriba y abajo del valor puntual, width es el ancho de las lineas horizontales extremas.

Alternativamente, se puede generar una gráfica de dinamita (no recomendable según algunos).

Las instrucciones para la gráfica de barras anterior son las siguientes:

trbar<-ggplot(trparasit,aes(factor(TEMPERATURA), PARASITADOS)) + geom_bar(stat='identity', fill="#7ACAFF", colour="black") + geom_errorbar(aes(ymin = PARASITADOS-EEp, ymax = PARASITADOS + EEp), width = 0.4) + xlab("TEMPERATURA") + theme_bw() + coord_flip()

El desglose de las instrucciones es como sigue:

ggplot(trparasit,aes(factor(TEMPERATURA),PARASITADOS))

Las instrucciones son similares a la figura de puntos, excepto que Temperatura es convertida a variable nominal con la función factor().

geom_bar(stat='identity',fill="#7ACAFF",colour="black")

Estas instrucciones construyen las barras, con color en código hexadecimal y la linea de color negro

geom_errorbar(aes(ymin = PARASITADOS-EEp, ymax = PARASITADOS+EEp), width = 0.4)

Con estas instrucciones se dibujan las lineas verticales, el ancho de las líneas en los extremos es 0.4

xlab("TEMPERATURA")

Es el nombre del eje X, de otra manera aparece como factor(TEMPERATURA)

theme_bw()

Construye el color de fondo en blanco y negro

coord_flip()

Hace una rotación de las coordenadas

Una opción adicional es modelar la respuesta, esto se puede hacer de diferentes maneras, la mas sencilla es emplear algunos de los métodos estadísticos incluidos en ggplot, para esto, se emplea la opción geom_smooth(). Las instrucciones son las siguientes:

tr2<-ggplot(trparasit,aes(TEMPERATURA,PARASITADOS)) + geom_point(size=8) + geom_errorbar(aes(ymin = PARASITADOS-EEp, ymax = PARASITADOS + EEp), width = 0.8) + geom_smooth(colour="black")

La diferencia con la primera gráfica de puntos y lineas es geom_smooth(), que no toma ningún argumento y genera una curva por interpolación local. El interesado debe consultar la descripción de esta función.

http://docs.ggplot2.org/0.9.3.1/geom_smooth.html

Ejemplo 2. Experimento de Fertilidad en Caña de Azúcar

En este caso es importante observar las posibles interacciones entre los factores. Los datos rsC.csv corresponden a la media, error estandar EEm y n, no. de observaciones de las combinaciones a diferentes dosis (kg/ha) de fertilizantes: nitrógeno, fosforo y potasio. La respuesta es rendimiento.

Las instrucciones para hacer la figura son las siguientes:

figN<-ggplot(data = rsC, aes(x= Dosis, y = Media, fill = Fert)) + geom_line(size=1) + geom_errorbar(aes(ymin= Media - EEM*qt(0.975,n-1), ymax=Media + EEM*qt(0.975,n-1)), width=18,size=1) + geom_point(shape=21, colour="black", size= 7) + scale_fill_manual(values=c("white","black"))+ facet_grid(.~ K) + theme_bw()

Aquí las nuevas instrucciones corresponden a estimar el intervalo de confianza al 95% para la media con la instrucción: EEM*qt(0.975,n-1), que se deriva de la ecuación para calcular la mitad del IC95%, qt es la función que retorna el valor de t de Student con n-1 grados de libertad.

La otra instrucción es el empleo de una escala de colores manual, para pintar los valores de Nitrógeno y Potasio (= Fert)

Sin embargo, la figura anterior tiene el problema que cuando la dosis es de 200 kg, los intervalos de confianza se traslapan, por lo cual sería conveniente desplazar un poco los valores. Esto se hace con la instrucción position e intercalar el desplazamiento en cada elemento visual

pd<-position_dodge(width=15)

figN2<-ggplot(data = rsC, aes(x= Dosis, y = Media, fill = Fert)) + geom_line(size=1, position=pd) + geom_errorbar(aes(ymin= Media - EEM*qt(0.975,n-1), ymax=Media + EEM*qt(0.975,n-1)), width=18,size=1, position=pd) + geom_point(shape=21, colour="black", size= 7, position=pd) + scale_fill_manual(values= c("white", "black"))+ facet_grid(.~ K) + theme_bw()

Finalmente, los encabezados de los paneles no indican que se refieren a las dosis de Potasio, por lo que se debe reetiquetar cada panel con una tabla de correspondencia y usando la instrucción labeller. Esta instrucción establece una correspondencia entre los valores originales (lado izquierdo) y los valores sustitutos (lado derecho)

#dodge the position to avoid overlap

pd<-position_dodge(width=15)

# Apply labeller in facet_grid to remark Potassium dose

figN3<-ggplot(data = rsC, aes(x= Dosis, y = Media, fill = Fert)) + geom_line(size=1, position=pd) + geom_errorbar(aes(ymin= Media - EEM*qt(0.975,n), ymax=Media + EEM*qt(0.975,n)), width=18,size=1, position= pd) + geom_point(shape=21, colour="black", size= 7, position=pd) + scale_fill_manual(values= c("white", "black"))+ facet_grid(.~ K, labeller= labeller(K=c("0" = "K= 0", "200"= "K= 200"))) + theme_bw()