Tutorial sobre el paquete ggplot2(), en R. Creación de gráficas de barras - Position.

Puedes seguir el tutorial por vídeo en https://youtu.be/Gx1SdXJqvLQ

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
##    Tratamiento Parcela Plantas
## 1      Tratado     P 1      15
## 2      Tratado     P 2      16
## 3      Tratado     P 3      18
## 4      Tratado     P 4      18
## 5      Tratado     P 5      12
## 6      Tratado     P 6      12
## 7      Tratado     P 7      25
## 8      Tratado     P 8      10
## 9      Tratado     P 9      15
## 10     Tratado    P 10      22
## 11     Testigo    P 11      14
## 12     Testigo    P 12      14
## 13     Testigo    P 13      16
## 14     Testigo    P 14       4
## 15     Testigo    P 15       8
## 16     Testigo    P 16       5
## 17     Testigo    P 17       7
## 18     Testigo    P 18       3
## 19     Testigo    P 19       9
## 20     Testigo    P 20      12
#install.packages("ggplot2") 
# Si es la primera vez que lo usas, tendrás que instalar primero el paquete.
library (ggplot2) # Después hay que cargarlo cada vez que inicies sesión.

Representación de la variable del eje X, 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")

Representación de la variable del eje X, según el orden definido por el ususario.

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)
## [1] "Testigo" "Tratado"
# Para cambiar este orden usamos la funcion "factor".
df$Tratamiento = factor(df$Tratamiento, levels=c("Tratado", "Testigo"))
levels(df$Tratamiento)
## [1] "Tratado" "Testigo"
# Volvemos a ejecutar el la gráfica.
ggplot(data=df, aes(x=Tratamiento, y=Plantas, fill=Parcela)) + 
    geom_bar(stat="identity", position="dodge")

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.

Representación según la cantidad representada (algura de las barras).

# 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")