27.24 Modificar texto

Partamos de la siguiente gráfica:

ggplot(data = saber, mapping = aes(x = estu_inse_individual,
                         y = punt_ingles,
                         color = cole_naturaleza)) +
  geom_point(alpha = 0.5) +
  scale_color_manual(values = c('#098', '#dc7')) +
  labs(title = "Al aumentar el nivel socioeconómico el puntaje de inglés tiende a aumentar ",
       subtitle = "Los colegios privados tienden a tener mayor nivel socioeconómico",
       x = "Nivel Socioeconómico", y = "Punta de Inglés",
       color = "Tipo de Colegio") +
  theme_minimal()

Para modificar el tipo de letra de todo el gráfico se usa el argumento text dentro de la capa theme():

ggplot(data = saber, mapping = aes(x = estu_inse_individual,
                         y = punt_ingles,
                         color = cole_naturaleza)) +
  geom_point(alpha = 0.5) +
  scale_color_manual(values = c('#098', '#dc7')) +
  labs(title = "Al aumentar el nivel socioeconómico el puntaje de inglés tiende a aumentar ",
       subtitle = "Los colegios privados tienden a tener mayor nivel socioeconómico",
       x = "Nivel Socioeconómico", y = "Punta de Inglés",
       color = "Tipo de Colegio") +
  theme_minimal() +
  theme(text = element_text(family = "serif", face = "bold", size=10))

# vignette("ggplot2-specs")

Para ver información sobre fuentes vea: http://www.cookbook-r.com/Graphs/Fonts/ o busquen la viñeta

# vignette("ggplot2-specs")

Si se quiere cambiar el tipo de texto solamente para un elemento del gráfico, por ejemplo, el título del gráfico, el eje x o el eje y, es necesario señalar cuál es el elemento de manera explícita dentro de la capa theme(). Por ejemplo:

# Para el título del gráfico
theme(plot.title = element_text(family = "serif"))
# Para el título del eje x
theme(axis.title.x = element_text(family = "serif"))
# Para el título del eje y
theme(axis.title.y = element_text(family = "serif"))

Además del tipo de letra se puede cambiar el tamaño, con el argumento size =, el color con el argumento color = y la apariencia con el argumento face =. Las opciones en este caso son plain, bold para negrilla, italic para cursiva, bold.italic para negrilla y cursiva.

También se puede cambiar el centrado horizontal (hjust) y el centrado vertical (vjust), casos en los cuales se pone un número de 0 a 1 según donde se quiera poner el texto, entre otros.

Por ejemplo, para poner negrilla y centrar el título, la función anterior se complementa de la siguiente manera:

ggplot(data = saber, mapping = aes(x = estu_inse_individual,
                         y = punt_ingles,
                         color = cole_naturaleza)) +
  geom_point(alpha = 0.5) +
  scale_color_manual(values = c('#098', '#dc7')) +
  labs(title = "Al aumentar el nivel socioeconómico el puntaje de inglés tiende a aumentar ",
       subtitle = "Los colegios privados tienden a tener mayor nivel socioeconómico",
       x = "Nivel Socioeconómico", y = "Punta de Inglés",
       color = "Tipo de Colegio") +
  theme_minimal() +
  theme(text = element_text(family = "serif"), 
        plot.title = element_text(face = "bold",
                                  hjust = 0.5, size = 9))

¿Qué argumento se usaría para poner negrilla al título de la leyenda?