Para hoy vamos a utilizar las siguientes librerÃas:
library(tidyverse) # Para manejar bases de datos
library(stringr) # Para manejar texto
library(rebus) # Para manejar expresiones regulares facil!
Los usuarios de Mac  pueden acceder a las fuentes que tengan instaladas en su carpeta ~/Library/Fonts/ con el código que se muestra a continuación.
#########################
# Fuentes en el sistema #
########################
fuentes_Sys <- list.files("~/Library/Fonts/") %>%
str_remove_all(pattern = "." %R% capture(one_or_more(WRD)) %R% END)
# La ultima linea remueve la extensión de los archivos.
Nota: En Windows y otros, seguramente hay alguna otra forma de acceder a las fuentes dentro del sistema. En este caso, te recomiendo que pases a la sección de la librerÃa extrafont.
En la computadora, los tipos de letra se guardan en archivos con extensión *.otf y *.ttf (para saber la diferencia y más información sobre estos archivos, acudir al siguiente enlace).
El problema es que, a veces, muchas de esas fuentes no son compatibles con RStudio, o con R, o con la librerÃa ggplot2. Cuando esto sucede, hay que considerar en utilizar otro tipo de letra o en buscar otro archivo de instalación de las fuentes.
Si se requiere descargar fuentes, se recomiendan las siguientes páginas:
Nota: Hay que checar siempre que las fuentes sean gratuitas y de uso libre sin fines comerciales.
Una vez que entramos a estas páginas y descargamos una fuente en formato *.otf, tenemos que abrir e instalar el archivo. Tras hacer esto, la fuente ya se encontrará en la carpeta ~/Library/Fonts/ y, si esta es compatible con R y ggplot, podrá ser usada en nuestras gráficas.
extrafont.Para otro tipo de SO (Sistema Operativo) utilizaremos la librerÃa extrafont, cuya documentación puede verse en este enlace.
Esta librerÃa/paquete nos permite descargar al sistema de R y RStudio las fuentes que se encuentran disponibles en el sistema operativo, y hacerlas disponibles para nuestras gráficas de ggplot.
Para ello, primero debemos instalar la librerÃa con los comandos siguientes. Nota: Correr esto solo una vez!.
install.packages("extrafont")
extrafonts::font_import()
# Importa fuentes de donde las tengamos
# (Solo lo corremos una vez, y al principio, para bajar fuentes desde la compu).
Una vez que importamos las fuentes a R, ya tenemos una lista de aquellas que podemos utiliar para nuestras gráficas.
#############################
# Fuentes fuera del sistema #
#############################
library(extrafont)
###--- Registering fonts with R
# Guardamos los nombres de estas fuentes como cadena de texto.
fuentes_Imp <- fonts()
Armamos un vector con todas las fuentes disponibles en la computadora.
# Fuentes totales
fuentes <- append(fuentes_Imp, fuentes_Sys) %>%
unique() %>%
sort()
# Quitamos el primer elemento (en mi caso un espacio vacÃo)
fuentes <- fuentes[-1]
# Objeto con todos los nombres de todas las fuentes:
fuentes
###--- [1] ".Keyboard" ".New York"
###--- [3] ".SF Compact Display" ".SF Compact Rounded"
###--- [5] ".SF Compact Text" ".SF NS Mono"
###--- [7] ".SF NS Rounded" "Andale Mono"
###--- [9] "Apple Braille" "AppleMyungjo"
###--- [11] "Arial" "Arial Black"
###--- [13] "Arial Narrow" "Arial Rounded MT Bold"
###--- [15] "Arial Unicode MS" "Asap-Bold"
###--- [17] "Asap-BoldItalic" "Asap-Italic"
###--- [19] "Asap-Medium" "Asap-MediumItalic"
###--- [21] "Asap-Regular" "Asap-Symbol"
###--- [23] "Bodoni 72 Smallcaps" "Bodoni Ornaments"
###--- [25] "Brush Script MT" "Comic Sans MS"
###--- [27] "Courier New" "DIN Alternate"
###--- [29] "DIN Condensed" "encodings"
###--- [31] "fonts" "Georgia"
###--- [33] "Impact" "Khmer Sangam MN"
###--- [35] "Lao Sangam MN" "lmroman10-bold"
###--- [37] "lmroman10-bolditalic" "lmroman10-italic"
###--- [39] "lmroman10-regular" "lmromancaps10-oblique"
###--- [41] "lmromancaps10-regular" "lmromandemi10-oblique"
###--- [43] "lmromandemi10-regular" "lmromandunh10-oblique"
###--- [45] "lmromandunh10-regular" "lmromanslant10-bold"
###--- [47] "lmromanslant10-regular" "Luminari"
###--- [49] "Microsoft Sans Serif" "Noto Sans Avestan"
###--- [51] "Noto Sans Bamum" "Noto Sans Batak"
###--- [53] "Noto Sans Brahmi" "Noto Sans Buginese"
###--- [55] "Noto Sans Buhid" "Noto Sans Carian"
###--- [57] "Noto Sans Chakma" "Noto Sans Cham"
###--- [59] "Noto Sans Coptic" "Noto Sans Cuneiform"
###--- [61] "Noto Sans Cypriot" "Noto Sans EgyptHiero"
###--- [63] "Noto Sans Glagolitic" "Noto Sans Gothic"
###--- [65] "Noto Sans Hanunoo" "Noto Sans ImpAramaic"
###--- [67] "Noto Sans InsPahlavi" "Noto Sans InsParthi"
###--- [69] "Noto Sans Kaithi" "Noto Sans Kayah Li"
###--- [71] "Noto Sans Kharoshthi" "Noto Sans Lepcha"
###--- [73] "Noto Sans Limbu" "Noto Sans Linear B"
###--- [75] "Noto Sans Lisu" "Noto Sans Lycian"
###--- [77] "Noto Sans Lydian" "Noto Sans Mandaic"
###--- [79] "Noto Sans MeeteiMayek" "Noto Sans Mongolian"
###--- [81] "Noto Sans N'Ko" "Noto Sans NewTaiLue"
###--- [83] "Noto Sans Ogham" "Noto Sans Ol Chiki"
###--- [85] "Noto Sans Old Italic" "Noto Sans Old Turkic"
###--- [87] "Noto Sans OldPersian" "Noto Sans OldSouArab"
###--- [89] "Noto Sans Osmanya" "Noto Sans PhagsPa"
###--- [91] "Noto Sans Phoenician" "Noto Sans Rejang"
###--- [93] "Noto Sans Runic" "Noto Sans Samaritan"
###--- [95] "Noto Sans Saurashtra" "Noto Sans Shavian"
###--- [97] "Noto Sans Sundanese" "Noto Sans Syloti Nagri"
###--- [99] "Noto Sans Syriac" "Noto Sans Tagalog"
###--- [101] "Noto Sans Tagbanwa" "Noto Sans Tai Le"
###--- [103] "Noto Sans Tai Tham" "Noto Sans Tai Viet"
###--- [105] "Noto Sans Thaana" "Noto Sans Tifinagh"
###--- [107] "Noto Sans Ugaritic" "Noto Sans Vai"
###--- [109] "Noto Sans Yi" "Noto Serif Balinese"
###--- [111] "Poppins" "Poppins Black"
###--- [113] "Poppins ExtraBold" "Poppins ExtraLight"
###--- [115] "Poppins Light" "Poppins Medium"
###--- [117] "Poppins SemiBold" "Poppins Thin"
###--- [119] "Poppins-Black" "Poppins-BlackItalic"
###--- [121] "Poppins-Bold" "Poppins-BoldItalic"
###--- [123] "Poppins-ExtraBold" "Poppins-ExtraBoldItalic"
###--- [125] "Poppins-ExtraLight" "Poppins-ExtraLightItalic"
###--- [127] "Poppins-Italic" "Poppins-Light"
###--- [129] "Poppins-LightItalic" "Poppins-Medium"
###--- [131] "Poppins-MediumItalic" "Poppins-Regular"
###--- [133] "Poppins-SemiBold" "Poppins-SemiBoldItalic"
###--- [135] "Poppins-Thin" "Poppins-ThinItalic"
###--- [137] "Source Code Pro" "Source Code Pro Black"
###--- [139] "Source Code Pro ExtraLight" "Source Code Pro Light"
###--- [141] "Source Code Pro Semibold" "System Font"
###--- [143] "Tahoma" "Times New Roman"
###--- [145] "Trattatello" "Trebuchet MS"
###--- [147] "Verdana" "Webdings"
###--- [149] "Wingdings" "Wingdings 2"
###--- [151] "Wingdings 3"
Yo en mi computadora tengo acceso a 151 fuentes diferentes. Este resultado puede variar entre computadoras.
Para hacer una gráfica demo de manera rápida, utilizaremos una de las bases de datos que R trae pre-instaladas –la famosa base de datos Iris–. Si deseas conocer el contenido y la historia de esta base, te recomiendo visitar este enlace.
# Para precargar la base Iris preconstruida en RStudio.
data("iris")
Nota: Si quieres saber que otras bases de datos tiene pre-instaladas RStudio, utiliza la función data() en la terminal.
A continuación, elaboramos gráficas para comprobar que efectivamente se pueden utilizar otro tipo de fuentes en nuestra computadora.
Para esto, generamos una función propia que genere gráficas, tomando como argumento sólamente el tipo de letra.
# Gráfica de la base Iris
grafica_fuentes <- function(i = "Arial"){
grafica <- iris %>%
ggplot(aes(x = Sepal.Width, y = Sepal.Length, color = Species)) +
geom_point(stat = "identity", size = 4, color = "#000000") +
geom_point(stat = "identity", size = 3) +
labs(title = paste0('Grafica usando fuente: '),
subtitle = paste0('"', i, '"'),
x = "Eje x = Sepal.Width",
y = "Eje y = Sepal.Length") +
theme_bw() +
theme(text = element_text(family=i, size = 15),
plot.subtitle = element_text(color = "red",
family = i,
size = 30))
return(grafica)
}
Para esta gráfica (y las subsecuentes) hay que verificar que el nombre de la fuente esté dentro del vector de fuentes. Muy seguramente (y dependiendo del SO) los tipos de letras pueden variar. Como experimento, puedes buscar y descargar los tipos de letra que se mencionan más adelante y probarlos en tu computadora.
grafica_fuentes(i = "Arial")
Esta fuente la descargué de los enlaces mostrados previamente.
grafica_fuentes(i = "Avenir Next")
Este es la fuente oficial del LNPP. Puedes descargarla de los enlaces de descarga de fuentes mostrados anteriormente.
grafica_fuentes(i = "Asap-Bold")
grafica_fuentes(i = "Luminari")
grafica_fuentes(i = "Wingdings")
grafica_fuentes(i = "Times New Roman")
En Windows, intenta utilizar la fuente Comic Sans MS o la Papyrus, para practicar.