---
title: "GGPLOT2. Gráfico de barras IV - Reordenar barras"
author: "Raúl Ortiz"
date: "Saturday, July 17, 2015"
output: pdf_document
---
```{r}
# Empezamos introduciendo nuestros datos y creando el DataFrame
Plantas = c(15,16,18,18,12,12,25,10,15,22,14,14,16,4,8,5,7,3,9,12) # Plantas nacidas por m2
Parcela = paste("P", 1:20)
Tratamiento = rep((c("Tratado","Testigo")),c(10,10))
df = data.frame(Tratamiento, Parcela, Plantas)
df
```
```{r}
# REPRESENTACIÓN SEGÚN EL ORDEN PREDEFINIDO EN R (alfabético).
# Representamos el número de plantas nacidas según el Tratamiento
ggplot(data=df, aes(x=Tratamiento, y=Plantas)) +
geom_bar(stat="identity", position="stack")
# position=position.stack se puede abreviar con position="stack".
# Podemos representar cada una de las parcelas, pero agrupadas por el tratamiento.
ggplot(data=df, aes(x=Tratamiento, y=Plantas, fill=Parcela)) +
geom_bar(stat="identity", position="dodge")
```
```{r}
# REPRESENTACIÓN SEGÚN ORDEN DEFINIDO POR EL USUARIO.
# Supongamos que queremos representar a la izquierda el tratado y a la derecha el testigo.
# Debemos tener en cuenta que, por defecto, el orden de representacion es el orden alfabético de los niveles de la variable representada. Para averiguar los niveles, usamos la funcion "levels".
levels(df$Tratamiento)
# Para cambiar este orden usamos la funcion "factor".
df$Tratamiento = factor(df$Tratamiento, levels=c("Tratado", "Testigo"))
levels(df$Tratamiento)
# Volvemos a ejecutar el la gráfica.
```
```{r}
# REPRESENTACION SEGÚN LA CANTIDAD REPRESENTADA (altura de las barras).
# Ahora representamos el número de plantas nacidas por parcela, distiguiendo las tratadas de las testigo, con el color de relleno.
ggplot(data=df, aes(x=Parcela, y=Plantas, fill=Tratamiento)) +
geom_bar(stat="identity", position="dodge")
# Comprobamos que por defecto, se representan las parcelas según el orden alfabético.
# Podríamos también ordenar la representacion, para que aparecieran las parcelas con orden decreciente, según el número de plantas, pero distinguiendo con el relleno las de los distintos tratamientos.
ggplot(data=df, aes(x=reorder(Parcela,-Plantas), y=Plantas, fill=Tratamiento)) +
geom_bar(stat="identity", position="dodge")
# O creciente
ggplot(data=df, aes(x=reorder(Parcela,Plantas), y=Plantas, fill=Tratamiento)) +
geom_bar(stat="identity", position="dodge")
```