Puedes seguir el tutorial por vídeo en https://youtu.be/1QTMide5wUA
setwd("~/Expression/Expression Encoder/Output/40 GGPLOT2 Modificar ejes")
Ya usamos el mismo en vídeos anteriores.
Tratamiento = factor(c(1,2,1,2,1,2),labels=c("Testigo", "Tratado"))
Color = factor(c(1,1,2,2,3,3),labels=c("Verde","Envero","Negra"))
Aceitunas = c(72,33,11,8,17,59)
df=data.frame(Tratamiento,Color,Aceitunas)
df
## Tratamiento Color Aceitunas
## 1 Testigo Verde 72
## 2 Tratado Verde 33
## 3 Testigo Envero 11
## 4 Tratado Envero 8
## 5 Testigo Negra 17
## 6 Tratado Negra 59
Recuerda cargar el paquete ggplot2 y extrafont.
Este es el código del gráfico que acabamos generando la última vez.
Grafico = ggplot(data=df, aes(x=Tratamiento, y=Aceitunas, fill=Color)) +
geom_bar(stat="identity", position=position_dodge()) +
scale_fill_manual(values=c("darkgreen", "purple","black")) +
theme (text = element_text(size=8)) + # Tamaño de fuente del grafico por defecto
ggtitle ("Estado de maduración de aceitunas \n con distintos tratamientos") + # Título del gráfico
theme (plot.title = element_text(family="Comic Sans MS",
size=rel(2), #Tamaño relativo de la letra del título
vjust=2, #Justificación vertical, para separarlo del gráfico
face="bold", #Letra negrilla. Otras posibilidades "plain", "italic", "bold" y "bold.italic"
color="red", #Color del texto
lineheight=1.5)) + #Separación entre líneas
labs(x = "Tratamientos",y = "Porcentaje de aceitunas (%)") + # Etiquetas o títulos de los ejes
#theme(axis.title = element_text(face="italic", colour="brown", size=rel(1.5))) # Tamaño de los títulos de los ejes
theme(axis.title.x = element_text(face="bold", vjust=-0.5, colour="orange", size=rel(1.5))) +
theme(axis.title.y = element_text(face="bold", vjust=1.5, colour="blue", size=rel(1.5)))
Grafico
Se puede simplificar, introduciendo las características del tema del título en un objeto y además estableciendo que los títulos de los ejes tengan el mismo formato.
TemaTitulo = element_text(family="Comic Sans MS",
size=rel(2), #Tamaño relativo de la letra del título
vjust=2, #Justificación vertical, para separarlo del gráfico
face="bold", #Letra negrilla. Otras posibilidades "plain", "italic", "bold" y "bold.italic"
color="red", #Color del texto
lineheight=1.5) #Separación entre líneas
Grafico = ggplot(data=df, aes(x=Tratamiento, y=Aceitunas, fill=Color)) +
geom_bar(stat="identity", position=position_dodge()) +
scale_fill_manual(values=c("darkgreen", "purple","black")) +
theme (text = element_text(size=8)) + # Tamaño de fuente del grafico por defecto
ggtitle ("Estado de maduración de aceitunas \n con distintos tratamientos") + # Título del gráfico
theme (plot.title = TemaTitulo) + # Etiquetas o títulos de los ejes
theme (axis.title = element_text(face="bold", colour="blue", size=rel(1.5))) # Características de los títulos de los ejes
Grafico
Grafico2 = Grafico +
theme (axis.text.x = element_text(face="italic", colour="red", size=rel(2)),
axis.text.y = element_text(face="bold", colour="chocolate4", size=rel(2), angle=90, hjust=0.5))
Grafico2
Usa la ayuda para ver los argumentos de element_text.
?element_text
Mostramos solamente una de las variables del eje abcisas.
Grafico2 + scale_x_discrete(limit = c("Testigo"))
Cambiamos el orden de aparición de las variables. En vídeos anteriores lo hicimos cambiando el orden de las variables, manipulando el factor correspondiente.
df$Tratamiento = factor(df$Tratamiento, levels=c("Tratado", "Testigo"))
Pero también se puede hacer de forma que el cambio no afecte a los datos, tan sólo al gráfico.
Grafico2 + scale_x_discrete(limit = c("Tratado", "Testigo"))
También puede interesar borrar una de las etiquetas.
Grafico2 + scale_x_discrete(breaks = c("Testigo")) #Ver diferencia entre "breaks" y "limit"
Podemos cambiar el nombre de las etiquetas.
Grafico2 #Recordamos como era el gráfico original
Grafico2 + scale_x_discrete(limit = c("Testigo", "Tratado"),
labels = c("Tratamiento nuevo","Tratamiento referencia"))
Cambiamos el rango de datos del eje de ordenadas.
Grafico2 + scale_y_continuous(limit = c(0,200))
#Grafico2 + ylim(0,150) #Otra forma
Cambiamos la frecuencia y la disposición de las marcas.
Grafico2 + scale_y_continuous(breaks=seq(0, 70, 10)) #Marcas del 0 al 70, cada 10.
Grafico2 + scale_y_continuous(breaks=seq(20, 50, 5)) #Las marcas no tienen por qué ocupar todo el eje.
Grafico2 + scale_y_continuous(breaks=c(0, 35, 70)) #Especificamos las marcas que queremos.
Grafico2 + scale_y_continuous(breaks=c(0, 35, 70),
labels=c("Ninguna", "La mitad", "Casi todas")) #Las personalizamos.
Grafico2 + scale_y_continuous(breaks=NULL) #Las borramos.
Grafico2 + theme(axis.ticks = element_blank(),
axis.text.y = element_blank()) #Igual que el anterior pero con las líneas horizontales.
Podemos cambiar también establecer los límites del eje y decidir como se dispondrán las marcas, al mismo tiempo.
Grafico2 + scale_y_continuous(limit = c(0,80), breaks=seq(10, 70, 5))
Revertimos el orden del eje de ordenadas.
Grafico2 + scale_y_continuous(trans = "reverse")
#Grafico2 + scale_y_reverse() #Otra forma