class: center, middle, inverse, title-slide # ¿Cómo hacer Flipbooks? ## Con flipbookr y xaringan ### Carlos A. Ar. ### Última edición 06 de septiembre del 2021 --- # ¿Qué es un flipbook? - Es una forma de presentar información de manera paulatina. -- - Los datos así presentados pueden: -- - Genearar ideas de información más eficiente _que al ver una consola de código_. -- - Dar a entender los cambios que se reflejan con el código, ya sea: -- 1. Manejo de datos. 2. Visualización de datos. 3. Análisis de datos. -- - Salvar a tu audiencia de un desmayo por aburrimiento. -- .center[`Un paso a la vez.`] --- # ¿Qué es `flipbookr`? - Un paquete de R que sirve para hacer un flipbook. - La maravillosa herramineta que permite convertir... -- .pull-left[ Esto  ] -- .pull-right[ En esto  ] --- class: middle, center # Comentatrios de las creadoras de flipbookr `flipbookr` se actualiza para mejorar su funcionalidad -- Puedes contribur en su construcción en el repositorioo de Eva: https://github.com/EvaMaeRey/flipbookr! --- # Crea tu flipbook -- ### Prerequisitos -- - Tener ganas de compartir datos y su _"Transformación"_ de manera accesible. -- - [Crear una presentación de Xaringan](https://tutorialesmg.netlify.app/xaringan-y-flipbookr) -- - Enseñar de manera incremental la creación de gráficas o cambio en los datos. -- ### Extra - Puedes hacer un solo chunk de código y a partir de una función se logra _partir_ en secciones para presentar la evolución de un proceso. - Recomiendo que el chunk de código donde se encuentra lo que quieres presentar tenga en su encabezado el comando `include = F`, es para que no se vea toda la información de código. _Más detalles [aquí](https://tutorialesmg.netlify.app/r-markdown#Opciones_de_C%C3%B3digo_Chunk)_ --- # Ahora sí -- 1. Usa el comando `remotes::install_github("EvaMaeRey/flipbookr")` -- 2. Mandar a llamar la librería en el chunk inicial `library(flipbookr)` -- 3. Usar la función `chunk_reveal()` para entender las distintas formas de dar a conocer el código de algún chunk. _La función no se usa dentro del chunk, sino FUERA del chunk_. Usa el formato 'r chunk_reveal()' -- 4. Dar formato de diseño con la función anterior. -- 5. ¡Disfruta el resultado! --- class: middle, inverse, center # Ejemplo. Pinguinos Para demostrar cómo funciona flipbookr, usaremos datos sobre pinguinos. --- # Ejemplo a trabajar .pull-left[Con el propósito de entender mejor la forma de crear un flipbook con R, usaré la información vertida sobre los pinguinos. Puedes aprender más de [los datos](https://allisonhorst.github.io/palmerpenguins/). ```r #Instalar el paquete con los datos remotes::install_github("allisonhorst/palmerpenguins") #Mandar a llamar los datos library(palmerpenguins) ``` ] -- .pull-right[#### Demos un vistazo a la información. ```r str(penguins) ``` ``` tibble [344 x 8] (S3: tbl_df/tbl/data.frame) $ species : Factor w/ 3 levels "Adelie","Chinstrap",..: 1 1 1 1 1 1 1 1 1 1 ... $ island : Factor w/ 3 levels "Biscoe","Dream",..: 3 3 3 3 3 3 3 3 3 3 ... $ bill_length_mm : num [1:344] 39.1 39.5 40.3 NA 36.7 39.3 38.9 39.2 34.1 42 ... $ bill_depth_mm : num [1:344] 18.7 17.4 18 NA 19.3 20.6 17.8 19.6 18.1 20.2 ... $ flipper_length_mm: int [1:344] 181 186 195 NA 193 190 181 195 193 190 ... $ body_mass_g : int [1:344] 3750 3800 3250 NA 3450 3650 3625 4675 3475 4250 ... $ sex : Factor w/ 2 levels "female","male": 2 1 1 NA 1 2 1 2 NA NA ... $ year : int [1:344] 2007 2007 2007 2007 2007 2007 2007 2007 2007 2007 ... ``` ] --- .pull-left[ ```r head(penguins_raw) ``` ``` # A tibble: 6 x 17 studyName `Sample Number` Species Region Island Stage `Individual ID` <chr> <dbl> <chr> <chr> <chr> <chr> <chr> 1 PAL0708 1 Adelie Pengu~ Anvers Torger~ Adult,~ N1A1 2 PAL0708 2 Adelie Pengu~ Anvers Torger~ Adult,~ N1A2 3 PAL0708 3 Adelie Pengu~ Anvers Torger~ Adult,~ N2A1 4 PAL0708 4 Adelie Pengu~ Anvers Torger~ Adult,~ N2A2 5 PAL0708 5 Adelie Pengu~ Anvers Torger~ Adult,~ N3A1 6 PAL0708 6 Adelie Pengu~ Anvers Torger~ Adult,~ N3A2 # ... with 10 more variables: Clutch Completion <chr>, Date Egg <date>, # Culmen Length (mm) <dbl>, Culmen Depth (mm) <dbl>, # Flipper Length (mm) <dbl>, Body Mass (g) <dbl>, Sex <chr>, # Delta 15 N (o/oo) <dbl>, Delta 13 C (o/oo) <dbl>, Comments <chr> ``` ] -- .pull-right[ Ambos conjuntos de datos contienen datos de 344 pingüinos, sin smbargo el primero tiene menos variables que el segundo. Hay 3 especies diferentes de pingüinos en este conjunto de datos, recopilados en 3 islas del archipiélago de Palmer, en la Antártida. ] --- class: middle, center  --- .pull-left[ <!-- --> ] -- .pull-right[ .center[Con este gráfico y otros estaremos trabajando los flipbooks. ] ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r *penguins ``` ] .panel2-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false # Flipbook muestra .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-auto[ <!-- --> ] <style> .panel1-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # La función importante `chunk_reveal()` .pull-left[La función `chunk_reveal()` sirve para hacer los chunks de código legibles por partes de tal forma que el entendimiento del código sea correcto. En la presentación de Xaringan se vería: ```markdown `r chunk_reveal(chunk_name = "cars", break_type = "user")` ``` ] .pull-right[Existen muchas formas de mostrar en modo "flipbook" tu código, lo cual veremos a continuación con los...] --- # Parámetros ```markdown `r chunk_reveal(chunk_name = "cars", break_type = "user")` ``` -- Los siguientes parámetros son fundamentales para entender la función: -- - **chunk_name** se le asigna el nombre del chunk de código, del ejemplo "cars". Para asignar el nombre a un chunk de código, solo es necesario escribirlo al lado de la letra r:  -- - **break_type** indica qué linea del código del chunk se revelará y en qué momento. Por defecto el parámetro tiene la asignación "auto". Es decir, sino especificas su valor, entonces el valor por defecto será "auto". -- - **display_type** indica si se desea que "se vea" en la presentación el codigo, el resultado del código o ambos. Por defecto `display_type`="both". -- - **left_assign** Cuando left_assign = TRUE, el primer objeto creado se imprime al final del chunk de código. --- class: middle, center ## Veremos en esta presentación las diferentes formas de usar estos parámetros así como sus resultados.  --- class: middle, inverse, center # break_type -- Este parámetro de la función `chunk_reveal()` ayuda a distinguir cuándo aparece el código _o resultado_ del que queremos hacer un flipbook --- # `break_type` .pull-left[Las opciones de este parámetro son: - auto - user - non_seq - rotate - n (algún número natural) Recordemos que este parámetro permite que quien crea el flipbook decida cuál parte del código desea que aparezca primero, depués, etc. ] -- .pull-right[ Veremos con los datos de los pinguinos cómo funcionan estas opciones. ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] --- ## `break_type = "auto"` El valor "auto" del parámetro `break_type` se da por defecto sino se especifica otra opción. La forma en que `chunk_reveal()` decide cómo mostrar las partes del código es por orden de aparición de los paréntesis o pipes (%>%). <!-- display the user input code as a refresher --> ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r *penguins ``` ] .panel2-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### break_type = auto .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-auto[ <!-- --> ] <style> .panel1-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `break_type = "user"`, con #BREAK .pull-left[ Tú puedes decidir cómo quieres que aparezcan las partes del código, esto se hace con la opción "user" y #BREAK. En donde aparezca #BREAK se detendrá la aparición del código _(se observan los resultados del código hasta el BREAK)_. Si hay más de un #BREAK, entonces el código aparecerá en ese orden. ] -- .pull-right[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] --- count: false ### break_type = user .panel1-pinguinos-user[ ```r *penguins %>% * ggplot() + * aes(x = bill_length_mm) + * aes(y = bill_depth_mm) + * aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-user[ <!-- --> ] --- count: false ### break_type = user .panel1-pinguinos-user[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) + * aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) + * aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-user[ <!-- --> ] --- count: false ### break_type = user .panel1-pinguinos-user[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-user[ <!-- --> ] --- count: false ### break_type = user .panel1-pinguinos-user[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-user[ <!-- --> ] <style> .panel1-pinguinos-user { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-user { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-user { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `break_type = "non_seq"`, con #BREAK2, #BREAK3 .pull-left[ Es parecido a la opción anterior pero es necesario el uso de números después del #BREAK. El número indica el momento en que aparecerá y se ejecutará esa línea de código. Primero aparecerá todo __lo que no__ tenga #BREAK _N_ y luego aparecerá la línea donde _N = 2_, luego _N = 3_ y así en lo sucesivo. ] -- .pull-right[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] --- count: false ### break_type = non_seq .panel1-pinguinos-non_seq[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") ``` ] .panel2-pinguinos-non_seq[ <!-- --> ] --- count: false ### break_type = non_seq .panel1-pinguinos-non_seq[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") ``` ] .panel2-pinguinos-non_seq[ <!-- --> ] --- count: false ### break_type = non_seq .panel1-pinguinos-non_seq[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") ``` ] .panel2-pinguinos-non_seq[ <!-- --> ] --- count: false ### break_type = non_seq .panel1-pinguinos-non_seq[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", * y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") ``` ] .panel2-pinguinos-non_seq[ <!-- --> ] <style> .panel1-pinguinos-non_seq { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-non_seq { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-non_seq { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `break_type = "rotate"` .pull-left[Si queremos dar "varias opciones" a la audiencia sobre las formas en que pueden tratar su código, usamos este tipo de aparición con la palabra __#ROTATE__ posterior a la línea de código que deseamos de esa forma presentar. Dado que en el chunk de código aparecerán las opciones de la misma idea de codficación, éste no se desea evaluar pues aparecería un error. Para solucionar esto, usamos `echo = FALSE`.] -- .pull-right[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + labs(x = "Flipper length (mm)", y = "Frequency", title = "Penguin flipper lengths") + scale_fill_manual(values = c("darkorange","purple","cyan4")) + #ROTATE scale_fill_manual(values = c("#09A901","#337D2F","#67F11D")) + #ROTATE scale_fill_manual(values = c("#F11D94","#6A3401","#F3F185")) #ROTATE ``` ] --- count: false ### break_type = rotate .panel1-my_rotate-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + labs(x = "Flipper length (mm)", y = "Frequency", title = "Penguin flipper lengths") + * scale_fill_manual(values = c("darkorange","purple","cyan4")) ``` ] .panel2-my_rotate-rotate[ <!-- --> ] --- count: false ### break_type = rotate .panel1-my_rotate-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + labs(x = "Flipper length (mm)", y = "Frequency", title = "Penguin flipper lengths") + * scale_fill_manual(values = c("#09A901","#337D2F","#67F11D")) ``` ] .panel2-my_rotate-rotate[ <!-- --> ] --- count: false ### break_type = rotate .panel1-my_rotate-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + labs(x = "Flipper length (mm)", y = "Frequency", title = "Penguin flipper lengths") + * scale_fill_manual(values = c("#F11D94","#6A3401","#F3F185")) ``` ] .panel2-my_rotate-rotate[ <!-- --> ] <style> .panel1-my_rotate-rotate { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-my_rotate-rotate { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-my_rotate-rotate { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## Posibles combinaciones .pull-left[ Si deseas que aparezca el código paulatinamente y además se cambie una sección particular del código, solo es necesario añadir el parámetro `omit` dentro de la función `chunk_reveal()` con el valor "#ROTATE". 1. Escribimos __r chunk_reveal("omit", omit = "#ROTATE", break_type = "auto")__ en la "diapositiva" donde queremos que aparezca la combinación. 2. En la diapositiva posterior escribimos __r chunk_reveal("omit", omit = "#ROTATE", break_type = "auto")__ para que se de la "rotación". ] -- .pull-right[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + scale_fill_manual(values = c("#FF7400","#944300","#341800")) + #OMIT scale_fill_manual(values = c("darkorange","purple","cyan4")) + #ROTATE scale_fill_manual(values = c("#09A901","#337D2F","#67F11D")) + #ROTATE scale_fill_manual(values = c("#F11D94","#6A3401","#F3F185")) + #ROTATE theme_minimal() + labs(x = "Flipper length (mm)") + labs(y = "Frequency") + labs(title = "Penguin flipper lengths") ``` ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r *ggplot(data = penguins) ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + * aes(x = flipper_length_mm) ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + * geom_histogram(aes(fill = species), * alpha = 0.5, * position = "identity") ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + * scale_fill_manual(values = c("#FF7400","#944300","#341800")) ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + scale_fill_manual(values = c("#FF7400","#944300","#341800")) + * theme_minimal() ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + scale_fill_manual(values = c("#FF7400","#944300","#341800")) + theme_minimal() + * labs(x = "Flipper length (mm)") ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + scale_fill_manual(values = c("#FF7400","#944300","#341800")) + theme_minimal() + labs(x = "Flipper length (mm)") + * labs(y = "Frequency") ``` ] .panel2-omit-auto[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + scale_fill_manual(values = c("#FF7400","#944300","#341800")) + theme_minimal() + labs(x = "Flipper length (mm)") + labs(y = "Frequency") + * labs(title = "Penguin flipper lengths") ``` ] .panel2-omit-auto[ <!-- --> ] <style> .panel1-omit-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-omit-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-omit-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- count: false ### Combinaciones rotate-incremental .panel1-omit-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + * scale_fill_manual(values = c("darkorange","purple","cyan4")) + theme_minimal() + labs(x = "Flipper length (mm)") + labs(y = "Frequency") + labs(title = "Penguin flipper lengths") ``` ] .panel2-omit-rotate[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + * scale_fill_manual(values = c("#09A901","#337D2F","#67F11D")) + theme_minimal() + labs(x = "Flipper length (mm)") + labs(y = "Frequency") + labs(title = "Penguin flipper lengths") ``` ] .panel2-omit-rotate[ <!-- --> ] --- count: false ### Combinaciones rotate-incremental .panel1-omit-rotate[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + * scale_fill_manual(values = c("#F11D94","#6A3401","#F3F185")) + theme_minimal() + labs(x = "Flipper length (mm)") + labs(y = "Frequency") + labs(title = "Penguin flipper lengths") ``` ] .panel2-omit-rotate[ <!-- --> ] <style> .panel1-omit-rotate { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-omit-rotate { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-omit-rotate { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `break_type = n` .pull-left[ Si tenemos una muestra aleatoria de la cual queremos hacer un mismo análisis entonces es conveniente usar `break_type = n`. Esto nos permitirá enseñar la forma en que cambia el gráfico asociado al código con cada muestra diferente __hasta n clicks__. Si n = 1 entonces tendremos el código simple y su resultado. ] -- .pull-right[ ```r proceso_markov_TPH <- function(){ #Trayectoria X X <- NULL #Pasos a simular: M #El tiempo de permanencia en cada estado (por cada salto) Tn <- c() #El estado donde inicia la trayectoria X[1] <- sample(c(1, 2, 3, 4, 5, 6), 1, replace = TRUE, prob = vec_pi) Tn[1] <- rexp(1, lambdas[X[1]]) i=1 while(T) { i <- i+1 #Dado que tenemos un estado inicial X[1], elegimos otro estado #a partir de la matriz de probabilidades de transición Pij X[i] <- sample(c(1, 2, 3, 4, 5, 6), 1, replace = T , prob = P[X[i - 1], ]) #Una vez definido el estado al que "saltará" la cadena, definimos el #tiempo de permanencia en el mismo con las "lambdas" correspondientes if (X[i] == 1) { Tn[i] <- rexp(1, lambdas[1]) } else if (X[i] == 2) { Tn[i] <- rexp(1, lambdas[2]) } else if (X[i] == 3) { Tn[i] <- rexp(1, lambdas[3]) } else if (X[i] == 4) { Tn[i] <- rexp(1, lambdas[4]) } else if (X[i] == 5) { Tn[i] <- rexp(1, lambdas[5]) } else{ break } } #Creamos la trayectoria que inicie en cero (en cuando al tiempo) y posteriormente haga los #"saltos" en cada tiempo acumulado de los saltos que van hasta el momento. trayectoria <- data.frame( x = c(0, cumsum(Tn)), y = X, xend = c(cumsum(Tn), sum(Tn) + .5), yend = X ) grafica <- ggplot(trayectoria, aes( x = x, y = y, xend = xend, yend = yend )) + geom_segment(color = 'orange', lwd = 1.3) + ggtitle("Trayectoria de la cadena de Markov asociada a una v.a. Tipo Fase") + geom_point(color = 'red') + xlab("Tiempo") + ylab("Estados") + theme( panel.background = element_rect(fill = "white"), strip.background = element_rect(fill = "black") ) grafica <- grafica + geom_segment( x = sum(Tn), xend = (sum(Tn) + .5), y = 6, yend = 6, color = "violet", lwd = 1.4 )+geom_point(x = sum(Tn),y = 6, color = 'purple') return(list(grafica, sum(Tn))) } ``` ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] --- count: false ### break_type = 7 .panel1-cadena_markov-7[ ```r proceso_markov_TPH() ``` ] .panel2-cadena_markov-7[ <!-- --> ] <style> .panel1-cadena_markov-7 { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-cadena_markov-7 { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-cadena_markov-7 { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> ```r proceso_markov_TPH() ``` <!-- --> --- ## break_type = "replace" .pull-left[Si queremos que los valores dentro del chunk de código sean remplazados varias veces para mostrar algo, entonces esta opción del break_type puede interesar. 1. Añadir el argumento `replace = "lo_que_quieres_remplazar"` 2. Poner además `replacements = lo_que_irá_en_vez_de_lo_que_quieres_remplazar` __Nota:__ Puedes hacer tantos remplazos como quieras. Al i-ésimo remplazo le pondremos `replacei = "lo_que_quieres_remplazar_por_i-ésima_vez"` donde `\(i>1\)`.] -- .pull_right[ ] --- count: false ### break_type = replace .panel1-pinguinos-replace[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK * scale_color_manual(values = c("cadetblue", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] .panel2-pinguinos-replace[ <!-- --> ] --- count: false ### break_type = replace .panel1-pinguinos-replace[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK * scale_color_manual(values = c("darkolivegreen", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] .panel2-pinguinos-replace[ <!-- --> ] --- count: false ### break_type = replace .panel1-pinguinos-replace[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK * scale_color_manual(values = c("firebrick2", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] .panel2-pinguinos-replace[ <!-- --> ] --- count: false ### break_type = replace .panel1-pinguinos-replace[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + #BREAK aes(color = species) + aes(shape = species) + #BREAK3 geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + #BREAK * scale_color_manual(values = c("firebrick", "#F7721B", "#FFDC17")) + #BREAK2 labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", #BREAK4 color = "Especie de pinguino", shape = "Especie de pinguino") + #BREAK theme( legend.position = c(0.85, 0.15), legend.background = element_rect(fill = "white", color = NA), plot.title.position = "plot", plot.caption = element_text(hjust = 0, face = "italic"), plot.caption.position = "plot") #BREAK ``` ] .panel2-pinguinos-replace[ <!-- --> ] <style> .panel1-pinguinos-replace { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-replace { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-replace { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: middle, inverse, center # display_type -- Este parámetro de la función `chunk_reveal()` ayuda a distinguir qué queremos que aparezca del flipbook. (Código, resultados, explicaciones,...) --- # `display_type` .pull-left[ Otro de los parámetros de la función `chunk_reveal()` es `display_type` al cual se le pueden asignar también diversas opciones: Puede ser un vector de a lo más 3 entradas que sean alguna(s) de las siguientes: - "code" - "output" - "func" - "output_lag" - "code_lag" ] -- .pull-right[Por defecto `display_type = c("code", "output")` que permite la forma normal del flipbook, es decir, el código y su resultado de manera progresiva y simultánea. Además de las opciones anteriores, "md" también se puede usar pero requiere que le agregues otro parámetro a la función `chunk_reveal()` que se llama `md` y sirve para que selecciones lo que aparecerá en cada __click__ en la presentación.] -- <div> <p style = 'text-align:center;'> ¡Veamos las opciones y sus resultados (outputs)! </p> </div> --- ## `display_type = "output"` Al usar esta opción como valor del parámetro `display_type`, solo se mostrará el resultado del código chunk de manera progresiva. _El break_type usado es el que está por defecto, es decir, "auto"_ --- count: false Sólo el resultado se muestra ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> --- count: false Sólo el resultado se muestra <!-- --> <style> .panel1-pinguinos-auto { color: black; width: 99%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: NA%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = "code"` Análogo a la opción "output", la opción "code" permitirá que solo se visualize la transición del código. --- count: false Sólo el código se muestra ```r *penguins ``` --- count: false Sólo el código se muestra ```r penguins %>% * ggplot() ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` --- count: false Sólo el código se muestra ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` <style> .panel1-pinguinos-auto { color: black; width: 99%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: NA%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("output", "code")` .pull-left[Si queremos cambiar la posición entre código y su resultado, simplemente intercambiamos las entradas de los vectores. ] -- .pull-left[Recoremos que por defecto, la entrada del parámetro `display_type` permite que del lado izquierdo se vea el código y del derecho el resultado que se da a partir de ese código. ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] .panel2-pinguinos-auto[ ```r *penguins ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] --- count: false Invertimos el orden de la salida del flipbook .panel1-pinguinos-auto[ <!-- --> ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] <style> .panel1-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 49%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("code", "output", "output_lag")` ### Agreguemos otra entrada al vector .pull-left[Con esta opción podemos lograr que: - Se vea el código. - Se vea la salida que el código está ejecutando. - Se vea la salida previa de ejecución del código. Es decir, que aparecerán tres columnas de resultados. La utilidad de esta opción es de la comparación que se puede dar de los resultados. ] -- .pull-right[ Como tenemos tres columnas de resultados, queremos que aparezcan con cierto ancho cada una, lo cual se hace con el parámetro `widths` el cual es un vector de tres entradas cada una de las cuales es un número que representa el ancho de las columnas. ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r *penguins ``` ] .panel2-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] .panel3-pinguinos-auto[ ``` [1] "--" ``` ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Retraso de un resultado .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] <style> .panel1-pinguinos-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: 10.7777777777778%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("code", "output", "output_target")` .pull-left[Posiblemente deseamos que aparezca en cada momento el resultado al que aspiramos llegar. Esto se obtiene con __"output_target"__. ] -- .pull-right[La ventaja del uso de esta entrada del vector asignado a `display_type` es que permites hacer un spoiler del resultado a la vez que muestras la forma en que se va construyendo el mismo paso a paso. ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r *penguins ``` ] .panel2-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] --- count: false ### Ver a lo que queremos llegar .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-auto[ <!-- --> ] .panel3-pinguinos-auto[ <!-- --> ] <style> .panel1-pinguinos-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: 10.7777777777778%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("code", "output","output_start")` .pull-left[La diferencia entre esta salida y las anteriores es la entrada tres del vector asignado al parámetro `display_type`. Cuando se usa __"output_start"__, queremos que ahora aparezca en todo momento el resultado inicial del código. ] -- .pull-right[El uso puede ser en decir: hemos iniciado aquí pero ahora construiremos algo muy diferente ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r *ggplot(data = penguins) ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r ggplot(data = penguins) + * aes(x = flipper_length_mm) ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + * geom_histogram(aes(fill = species), * alpha = 0.5, * position = "identity") ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + * theme_minimal() ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + * labs(x = "Flipper length (mm)", * y = "Frequency", * title = "Penguin flipper lengths") ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] --- count: false ### Vemos dónde iniciamos .panel1-hello-auto[ ```r ggplot(data = penguins) + aes(x = flipper_length_mm) + geom_histogram(aes(fill = species), alpha = 0.5, position = "identity") + theme_minimal() + labs(x = "Flipper length (mm)", y = "Frequency", title = "Penguin flipper lengths") + * scale_fill_manual(values = c("darkorange","purple","cyan4")) ``` ] .panel2-hello-auto[ <!-- --> ] .panel3-hello-auto[ <!-- --> ] <style> .panel1-hello-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-hello-auto { color: black; width: 43.1111111111111%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-hello-auto { color: black; width: 10.7777777777778%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("md", "code"), md = c("hi", "by")` .pull-left[ ### Este es el momento... .. donde podemos incluir texto en los flipbooks. Esto es importante porque posiblmente queremos hacer una breve descripción de lo que pasa en el código o en los resultados. Para poder "meter texto": 1. Agregamos "md" al vector asignado a `display_type` 2. Agregamos otro parámetro a la función `chunk_reveal()` que se llame md. 3. Asignamos al parámetro `md` el vector de caracteres que queremos que aparezcan en cada __click__.] -- .pull-right[Lo que puede ser complicado es ver cuántos son los elementos que conformarán al vector `md`. Esto dependerá del `break_type` que utilices. Dentro de los caracteres que aparecerán, se pueden agregar también fórmulas con sintáxis de `\(\mathbb{^LaTe_X}\)`. Es muy útil si se desea explicar código.] --- count: false .panel1-pinguinos-auto[ ## Elegir la base ] .panel2-pinguinos-auto[ ```r *penguins ``` ] --- count: false .panel1-pinguinos-auto[ ## Llamar al ggplot ] .panel2-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] --- count: false .panel1-pinguinos-auto[ ## Elegir el eje x ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] --- count: false .panel1-pinguinos-auto[ ## Elegir el eje y ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] --- count: false .panel1-pinguinos-auto[ ## Elegir la agrupación por especies ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] --- count: false .panel1-pinguinos-auto[ ## Poner el geométrico de puntos ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] --- count: false .panel1-pinguinos-auto[ ## Diferenciar los puntos por especie en color ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] --- count: false .panel1-pinguinos-auto[ ## Cambiar forma según la especie ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] --- count: false .panel1-pinguinos-auto[ ## Ajustar una curva con modelos lineales ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] --- count: false .panel1-pinguinos-auto[ ## . ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] --- count: false .panel1-pinguinos-auto[ ## Cambiar el tema de la gráfica ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] --- count: false .panel1-pinguinos-auto[ ## Cambiar los colores por grupo ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] --- count: false .panel1-pinguinos-auto[ ## Añadir los títulos, subtítulos y nombres de los ejes ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] --- count: false .panel1-pinguinos-auto[ ## Acomodar las dimensiones y posición de los títulos ] .panel2-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] <style> .panel1-pinguinos-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = c("md", "md2")` Si queremos en vez de código, una secuencia de caracteres, por ejemplo, fórmula | explicación, esta opción es muy útil. -- Como en la explicación anterior se requiere: - Un vector "de caracteres o fórmulas" asignado al argumento `md` en la función `chunk_reveal()` - Un vector "de caracteres o fórmulas" asignado al argumento `md2` en la función `chunk_reveal()` - `display_type = c("md", "md2")` en el argumento de la función `chunk_reveal()` -- __Nota:__ el número de entradas entre los vectores `md` y `md2` debe coincidir. --- count: false .panel1-71528-auto[ # Fórmula 1 ] .panel2-71528-auto[ ## `$$\frac{X_1+X_2+...+X_n}{n}$$` ] --- count: false .panel1-71528-auto[ # Fórmula 2 ] .panel2-71528-auto[ ## `$$\frac{1}{n} \sum_{i=1}^{n}X_i$$` ] --- count: false .panel1-71528-auto[ ### ¿Cuál crees que es mejor? ] .panel2-71528-auto[ Son lo mismo, la media muestral. ] <style> .panel1-71528-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-71528-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-71528-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- ## `display_type = "func"` .pull-left[Si queremos usar una función y conocer los parámetros para conformarla (pero al mismo tiempo dar a conocer lo que nos devuelve) solo usamos el __"func"__ (y el argumento "output"). Se puede usar con pipelines lo cual quiere decir una "composición" de funciones sobre un argumento.] -- .pull-right[Recuerda que `display_type` puede tener un vector de tres entradas, así que en el siguiente ejemplo podremos ver el flipbook de `display_type = c("func", "code", "output")` Es decir que veremos de qué trata la función que se usa, el código correspondiente en el chunk y el resultado del código. ] --- count: false .panel1-rnorm-auto[ ``` function (n, mean = 0, sd = 1) .Call(C_rnorm, n, mean, sd) <bytecode: 0x00000000051f0df8> <environment: namespace:stats> ``` ] .panel2-rnorm-auto[ ```r *rnorm(50) ``` ] .panel3-rnorm-auto[ ``` [1] -1.53147884 1.75166959 -0.41882860 0.13585317 -0.49435011 1.41166016 [7] 0.03562314 1.92860023 1.53909251 -1.24460649 1.30823105 -0.39640682 [13] -0.78292370 -0.52375592 -1.17286749 -0.33130001 -1.29103472 -1.44679700 [19] 0.16170908 1.43641497 0.84370559 -0.88190602 1.10546986 -1.02006868 [25] 0.73895122 -0.14344446 -0.29824149 0.05437185 -0.39506909 1.89324696 [31] 0.29101814 2.04557854 -0.37894783 0.28911027 -0.85036158 -0.54221805 [37] -0.41290449 -0.70370288 0.28916620 1.28916097 0.94076266 -0.02061201 [43] 0.77557886 -0.66791031 -0.11697377 -0.43013544 0.75358343 0.02381247 [49] -0.91984694 0.25370952 ``` ] --- count: false .panel1-rnorm-auto[ ``` function (x, na.rm = FALSE) sqrt(var(if (is.vector(x) || is.factor(x)) x else as.double(x), na.rm = na.rm)) <bytecode: 0x000000002dfc90a0> <environment: namespace:stats> ``` ] .panel2-rnorm-auto[ ```r rnorm(50) %>% * sd() ``` ] .panel3-rnorm-auto[ ``` [1] 1.066501 ``` ] --- count: false .panel1-rnorm-auto[ ``` function (x) .Primitive("length") ``` ] .panel2-rnorm-auto[ ```r rnorm(50) %>% sd() %>% * length() ``` ] .panel3-rnorm-auto[ ``` [1] 1 ``` ] <style> .panel1-rnorm-auto { color: black; width: 32%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-rnorm-auto { color: black; width: 32%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-rnorm-auto { color: black; width: 33%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- # Extra extra! -- .pull-right[ 1. Para añadir un título al flipbook, simplemente es necesario que escribas dentro de la función `chunk_reveal()` el parámetro `title = "## Mi primer título` 2. Posiblemente tengas interés en cambiar la forma en que se desarrolla tu flipbook, es decir que a lo mejor quieres que... ] -- .pull-left[ .. se vea el código encima del resultado. Esto es posible y está en desarrollo aún, pero se logra con agregar el parámetro `float` dentro de la función `chunk_reveal()` con las opciones "top" o "bottom" ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r *penguins ``` ] .panel2-pinguinos-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% * ggplot() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + * aes(x = bill_length_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") ``` ] .panel2-pinguinos-auto[ <!-- --> ] --- count: false ### Experimenta otras formas de visualizar el flipbook .panel1-pinguinos-auto[ ```r penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") ``` ] .panel2-pinguinos-auto[ <!-- --> ] <style> .panel1-pinguinos-auto { color: black; width: 38.6060606060606%; hight: 32%; float: bottom; padding-left: 1%; font-size: 80% } .panel2-pinguinos-auto { color: black; width: 59.3939393939394%; hight: 32%; float: bottom; padding-left: 1%; font-size: 80% } .panel3-pinguinos-auto { color: black; width: NA%; hight: 33%; float: bottom; padding-left: 1%; font-size: 80% } </style> --- class: middle, inverse, center # left_type -- Este parámetro de la función `chunk_reveal()` ayuda a decidir cómo "leer" el código dento del chunk. --- # Assignment .pull-left[Para crear objetos en R es compún usar `<-` pero igual se puede usar `->` o incluso `=`. El objetivo de usar `left_assign = TRUE` es darle "prioridad" al objeto de asignación. Esto se nota en que aparece siempre el objeto creado durante el flipbook creado. ] -- .pull-right[ La utilidad es que podremos conocer el desarrollo de un objeto de manera paulatina y además ver el resultado final. Y posteriormente modificar ese objeto. Además sino se usa `left_assign = TRUE` __(que es lo que sucede por defecto)__ entonces no se podrá hacer este tipo de asignación (`->`). ] --- count: false .panel1-pinguinos1-auto[ ```r *pinguinos1 <- penguins pinguinos1 ``` ] .panel2-pinguinos1-auto[ ``` # A tibble: 344 x 8 species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g <fct> <fct> <dbl> <dbl> <int> <int> 1 Adelie Torgersen 39.1 18.7 181 3750 2 Adelie Torgersen 39.5 17.4 186 3800 3 Adelie Torgersen 40.3 18 195 3250 4 Adelie Torgersen NA NA NA NA 5 Adelie Torgersen 36.7 19.3 193 3450 6 Adelie Torgersen 39.3 20.6 190 3650 7 Adelie Torgersen 38.9 17.8 181 3625 8 Adelie Torgersen 39.2 19.6 195 4675 9 Adelie Torgersen 34.1 18.1 193 3475 10 Adelie Torgersen 42 20.2 190 4250 # ... with 334 more rows, and 2 more variables: sex <fct>, year <int> ``` ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% * ggplot() pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + * aes(x = bill_length_mm) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + * aes(y = bill_depth_mm) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + * aes(group = species) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + * geom_point(size = 3, alpha = 0.8) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + * aes(color = species) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + * aes(shape = species) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + * geom_smooth(method = "lm", se = FALSE) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + * aes(color = species) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + * theme_minimal() pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + * scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + * labs(title = "Dimensiones del pico de los Pinguinos", * subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", * x = "Longitud (mm)", * y = "Profundidad (mm)", * color = "Especie de pinguino", * shape = "Especie de pinguino") pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] --- count: false .panel1-pinguinos1-auto[ ```r pinguinos1 <- penguins %>% ggplot() + aes(x = bill_length_mm) + aes(y = bill_depth_mm) + aes(group = species) + geom_point(size = 3, alpha = 0.8) + aes(color = species) + aes(shape = species) + geom_smooth(method = "lm", se = FALSE) + aes(color = species) + theme_minimal() + scale_color_manual(values = c("#A92508", "#F7721B", "#FFDC17")) + labs(title = "Dimensiones del pico de los Pinguinos", subtitle = "Profundidad y largo del pico para los pinguinos Adelie, Chinstrap y Gentoo en Palmer Station LTER", x = "Longitud (mm)", y = "Profundidad (mm)", color = "Especie de pinguino", shape = "Especie de pinguino") + * theme( legend.position = c(0.85, 0.15), * legend.background = element_rect(fill = "white", color = NA), * plot.title.position = "plot", * plot.caption = element_text(hjust = 0, face = "italic"), * plot.caption.position = "plot") pinguinos1 ``` ] .panel2-pinguinos1-auto[ <!-- --> ] <style> .panel1-pinguinos1-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-pinguinos1-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-pinguinos1-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: middle, inverse, center # Más allá de gráficas y datos -- Podemos hacer flipbooks de cualquier cosa. --- # Operaciones aritméticas .pull-left[Hacer operaciones aritméticas de forma paulatina tambipen es posible pero... como sabes, debe seguirse la jerarquía de operaciones y no solo por orden de aparición en el chunk de código. ] -- .pull-right[ .center[  ] ] --- count: false .panel1-arith-auto[ ```r *(4 + 5) # Hay que tener cuidado ``` ] .panel2-arith-auto[ ``` [1] 9 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado * 6 # porque el orden de las operaciones ``` ] .panel2-arith-auto[ ``` [1] 1.5 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones * 7 # considera ``` ] .panel2-arith-auto[ ``` [1] 10.5 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera * 3 # el orden jerárquico ``` ] .panel2-arith-auto[ ``` [1] 7.5 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera 3 * # el orden jerárquico * 12 # de Matemáticas ``` ] .panel2-arith-auto[ ``` [1] -25.5 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera 3 * # el orden jerárquico 12 # de Matemáticas *matrix(1:4, ncol = 1) ``` ] .panel2-arith-auto[ ``` [1] -25.5 ``` ``` [,1] [1,] 1 [2,] 2 [3,] 3 [4,] 4 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera 3 * # el orden jerárquico 12 # de Matemáticas matrix(1:4, ncol = 1) %*% * matrix(1:4, nrow = 1) ``` ] .panel2-arith-auto[ ``` [1] -25.5 ``` ``` [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 2 4 6 8 [3,] 3 6 9 12 [4,] 4 8 12 16 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera 3 * # el orden jerárquico 12 # de Matemáticas matrix(1:4, ncol = 1) %*% matrix(1:4, nrow = 1) *matrix(1:4, ncol = 4) ``` ] .panel2-arith-auto[ ``` [1] -25.5 ``` ``` [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 2 4 6 8 [3,] 3 6 9 12 [4,] 4 8 12 16 ``` ``` [,1] [,2] [,3] [,4] [1,] 1 2 3 4 ``` ] --- count: false .panel1-arith-auto[ ```r (4 + 5) / # Hay que tener cuidado 6 * # porque el orden de las operaciones 7 - # considera 3 * # el orden jerárquico 12 # de Matemáticas matrix(1:4, ncol = 1) %*% matrix(1:4, nrow = 1) matrix(1:4, ncol = 4) %*% * matrix(1:4, nrow = 4) ``` ] .panel2-arith-auto[ ``` [1] -25.5 ``` ``` [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 2 4 6 8 [3,] 3 6 9 12 [4,] 4 8 12 16 ``` ``` [,1] [1,] 30 ``` ] <style> .panel1-arith-auto { color: black; width: 38.6060606060606%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel2-arith-auto { color: black; width: 59.3939393939394%; hight: 32%; float: left; padding-left: 1%; font-size: 80% } .panel3-arith-auto { color: black; width: NA%; hight: 33%; float: left; padding-left: 1%; font-size: 80% } </style> --- class: middle, inverse, center # Hacer flipbook's DE TEXTO -- ## `text_reveal` -- ### Es LA FUNCIÓN que sirve para ello -- Dale click de nuevo -- Conócela -- La entrada es un conjunto de caracteres, y el parámetro `sep` permitirá que la función sepa CUANDO se harán los "cortes" de la cadena de caracteres. --- --- class: inverse, middle, center # Este texto se está separando --- class: inverse, middle, center # con un guion medio y --- class: inverse, middle, center # es para que veas que puedes hacer --- class: inverse, middle, center # Un súper flipbook --- --- class: inverse, middle, center # A veces es mejor ir paso a paso para entender mejor todo. --- class: inverse, middle, center # Los Flipbooks presentan código paso a paso y de la mano con los resultados del mismo. --- class: inverse, middle, center # Aprovecha presentar tu código de forma ordenada. --- class: middle, inverse, center # Listo -- ## Ahora conoces lo básico para crear tus propios flipbook's -- ### Más información -- [Aquí](https://evamaerey.github.io/little_flipbooks_library/about/what_the_flipbook) --- <style type="text/css"> .remark-code{line-height: 1.5; font-size: 80%} @media print { .has-continuation { display: block; } } code.r.hljs.remark-code{ position: relative; overflow-x: hidden; } code.r.hljs.remark-code:hover{ overflow-x:visible; width: 500px; border-style: solid; } </style>