Analítica de Personas · Semestre otoño 2026 · Semana 6 · Prof. René Gempp
La Tarea 5 pide dos productos distintos: un informe técnico completo y una presentación ejecutiva de 5 slides dirigida a la VP de Personas. Hasta ahora hemos trabajado en Quarto generando documentos HTML. En este apunte aprenderemos a generar, desde el mismo Quarto, un segundo tipo de salida: una presentación en formato Reveal.js.
La pregunta razonable es: ¿por qué no usar PowerPoint? Tres motivos:
| Dimensión | PowerPoint | Quarto Reveal.js |
|---|---|---|
| Reproducibilidad | Los gráficos se copian y pegan desde R. Si cambian los datos, hay que volver a pegar todo. | Los gráficos se generan desde chunks de R cada vez que renderizamos. Si cambian los datos, la presentación se actualiza automáticamente. |
| Consistencia | El estilo visual depende de cada archivo y tiende a "derivar" con las ediciones. | El estilo vive en el YAML del documento. Todas las slides heredan la misma tipografía, colores y espaciados. |
| Una sola fuente de verdad | El informe y la presentación son dos archivos distintos que hay que mantener sincronizados a mano. | Podemos generar la presentación a partir del mismo .qmd del informe (o de uno muy parecido), con los mismos chunks de análisis. |
.pptx con format: pptx si necesitamos un archivo editable como entregable paralelo.
Un archivo .qmd se convierte en una presentación Reveal.js cuando su header YAML tiene format: revealjs en lugar de format: html. El header mínimo usable para la Tarea 5 es:
---
title: "Engagement 2026"
subtitle: "Presentación a la VP de Personas"
author: "[Tu nombre]"
date: today
format:
revealjs:
theme: simple
slide-number: true
embed-resources: true
incremental: false
fig-width: 9
fig-height: 5
lang: es
execute:
echo: false
warning: false
message: false
---
Tres claves que conviene entender bien:
embed-resources: true — el detalle más importantePor defecto, Quarto genera un .html que depende de una carpeta auxiliar con imágenes, CSS y JavaScript. Si subimos solo el HTML a Canvas, la presentación no se ve cuando alguien más la abre. Con embed-resources: true, Quarto empaqueta todo —imágenes, scripts, CSS— dentro del mismo archivo HTML. Es un archivo más grande, pero autosuficiente: podemos mandarlo por correo, subirlo a cualquier lado, y siempre se verá bien.
embed-resources: true. El archivo que sube a Canvas debe abrirse correctamente en cualquier navegador sin carpetas auxiliares.
echo: false — presentación, no reporteEn el informe técnico usamos code-fold: true para ocultar el código pero dejarlo disponible. En una presentación ejecutiva no queremos código en absoluto: queremos gráficos y bullets. echo: false evita que aparezcan los chunks en las slides. Los gráficos que producen los chunks sí aparecen.
theme: simple — el tema más limpio para audiencias ejecutivasQuarto Reveal.js trae varios temas built-in. Para una presentación dirigida a un VP, tres son especialmente apropiados: simple (fondo blanco, negro suave, máxima sobriedad), serif (con tipografía Georgia, más formal) y default (fondo blanco ligeramente gris). Los temas oscuros (dark, black, blood) son más llamativos pero menos apropiados para presentaciones formales de consultoría interna.
Esta es la parte que más confunde al principio. Quarto ofrece dos formas distintas de separar slides, y conviene elegir una y ser consistente.
## (headers de nivel 2)Cada ## inicia una nueva slide. El texto después del ## es el título de esa slide. Es la opción más intuitiva y la que recomendamos para la Tarea 5.
## Mensaje 1: la caída no es transversal
Desarrollo de Software y Soporte Técnico concentran
el 72% de la caída total de engagement.
## Mensaje 2: liderazgo es el driver más potente
El modelo de regresión atribuye 30% del R² a liderazgo,
seguido por desarrollo (25%).
--- (tres guiones)Cada línea de tres guiones crea una nueva slide sin título. Es útil para slides sin encabezado —por ejemplo, una slide que solo muestra un gráfico grande. Se puede combinar con la Opción A.
## Cambio 2025 → 2026 por área
Gráfico de comparación año a año:
---
{.r-stretch}
slide-level
Por defecto, Quarto considera que cada ## inicia una slide y los ### son subsecciones dentro de la misma slide. Este comportamiento se controla con la opción slide-level en el YAML. Para la Tarea 5, el default (slide-level: 2) es el correcto: un ## por slide.
La gran ventaja de usar Quarto para la presentación es que podemos incluir chunks de R que se ejecutan al renderizar. Un gráfico de ggplot2 se ve así en la slide:
## Heatmap por departamento × dimensión
```{r}
#| fig-width: 10
#| fig-height: 5
ggplot(heatmap_data, aes(dimension, departamento, fill = puntaje)) +
geom_tile(color = "white") +
scale_fill_gradient2(midpoint = 3,
low = "#B85042",
high = "#0D9488") +
labs(title = "Engagement promedio por área y dimensión",
x = NULL, y = NULL) +
theme_minimal(base_size = 14)
```
theme_minimal(base_size = 14) o base_size = 16 en tus slides, y base_size = 11 (default) en los chunks del informe. Esto hace que los ejes y leyendas sean legibles desde la última fila de la sala.
Los options del chunk (fig-width, fig-height) controlan el tamaño del gráfico que R genera. Para una slide Reveal.js estándar (widescreen 16:9), algo como fig-width: 10, fig-height: 5 suele funcionar bien. Si el gráfico se ve chico, se puede agregar la clase .r-stretch después del chunk:
```{r}
#| fig-width: 10
#| fig-height: 5
#| classes: r-stretch
ggplot(...) + ...
```
.r-stretch es una clase especial de Reveal.js que hace que el elemento ocupe todo el espacio vertical disponible en la slide.
:::: {.columns}Para una slide con texto a la izquierda y un gráfico a la derecha, el patrón es:
## Liderazgo es el driver más potente
:::: {.columns}
::: {.column width="45%"}
- Explica el **30%** del R² del modelo
- Su efecto es consistente entre departamentos
- Cualquier intervención debe partir aquí
:::
::: {.column width="55%"}
```{r}
plot(importancia)
```
:::
::::
Reveal.js permite que los bullets aparezcan uno por uno con clicks del teclado. Se activa con la clase .incremental:
::: {.incremental}
- Primer mensaje: la caída no es transversal
- Segundo mensaje: liderazgo es el driver más potente
- Tercer mensaje: el eNPS está en zona crítica
:::
Útil para slides donde queremos "dosificar" la información y evitar que la audiencia lea toda la slide mientras hablamos del primer punto. Para una presentación ejecutiva de 5 slides, es preferible no abusar de esto: una slide con 3 bullets incrementales se convierte en 4 "clicks" y puede fragmentar el ritmo.
Para darle énfasis visual a una slide de transición (por ejemplo, la portada o el cierre), Reveal.js permite poner un fondo de color o una imagen como background:
## Las tres palancas {background-color="#1B2A4A"}
1. Programa de mentoría en Soporte Técnico
2. Nuevo marco de 1:1 para jefaturas
3. Revisión de carga en Desarrollo de Software
La opción background-color va entre llaves después del título. Con fondos oscuros, el tema se adapta automáticamente y el texto aparece en blanco. También existen background-image, background-size y background-opacity.
Las speaker notes son anotaciones privadas que nosotros vemos en nuestra pantalla pero que la audiencia no ve en la proyección. En Reveal.js se activan con la clase .notes:
## Mensaje 1: la caída no es transversal
Desarrollo de Software y Soporte Técnico concentran
el 72% de la caída total de engagement.
::: {.notes}
Recordarle al VP que la cifra de 72% viene de sumar
las caídas absolutas de esos dos departamentos
dividido por la caída total. Si pregunta por el cálculo
exacto, está en el apéndice técnico del informe.
:::
Para verlas durante la presentación, presiona la tecla S mientras la presentación está abierta en el navegador. Se abre una ventana separada con las notas y un timer.
El tema simple es apropiado tal como viene. Pero si queremos alinear los colores con la identidad de InnovaCo (terracotta, navy, sage, teal), podemos agregar un pequeño archivo de estilos personalizado. Se hace en dos pasos:
Paso 1: crear un archivo custom.scss en la misma carpeta del .qmd:
/*-- scss:defaults --*/
$presentation-heading-color: #1B2A4A;
$presentation-heading-font: "Georgia", serif;
$body-color: #1E293B;
$link-color: #B85042;
/*-- scss:rules --*/
.reveal .slide-number { color: #B85042; }
.reveal blockquote { border-left: 4px solid #B85042; }
Paso 2: referenciarlo desde el YAML del .qmd:
format:
revealjs:
theme: [simple, custom.scss]
Reveal.js combina las dos hojas: primero aplica simple y después sobreescribe con lo que declaramos en custom.scss. Así mantenemos la sobriedad del tema base pero adaptamos los colores.
Desde RStudio: el botón Render genera el archivo .html. Desde el terminal:
quarto render mi_presentacion.qmd
El resultado es un único archivo mi_presentacion.html (gracias a embed-resources: true) que se puede abrir en cualquier navegador, mandar por correo, o subir a Canvas.
| Tecla | Acción |
|---|---|
| → / Espacio | Siguiente slide |
| ← | Slide anterior |
| F | Pantalla completa |
| S | Abrir ventana de speaker notes con timer |
| O o Esc | Vista general (grid de todas las slides) |
| ? | Ver el listado completo de atajos |
Si necesitamos entregar la presentación como PDF (para imprimir o para subirla a un sistema que no acepta HTML), abre la presentación en Chrome, agrega ?print-pdf al final de la URL y luego imprime desde el navegador (Ctrl+P) eligiendo "Guardar como PDF". Cada slide ocupa una página del PDF.
La Tarea 5 pide exactamente 5 slides de contenido, sin contar portada ni cierre. No es capricho: es la restricción que convierte el ejercicio en formación profesional. Cuando tenemos todo el espacio del mundo, comunicamos todo lo que sabemos. Cuando tenemos 5 slides, comunicamos lo que importa.
Una estructura que funciona bien para esta tarea:
Slide 1 — Mensaje 1: ¿Dónde está el problema?
(responde la pregunta 1 del CEO)
+ 1 visualización: heatmap por área × dimensión
Slide 2 — Mensaje 2: ¿Por qué bajó?
(responde la pregunta 2 del CEO)
+ 1 visualización: importancia relativa de drivers
Slide 3 — Mensaje 3: ¿Qué tan urgente es?
(contextualización: eNPS + comparación año a año)
+ 1 visualización: dumbbell 2025 vs 2026
Slide 4 — Las tres palancas (acciones concretas con costo)
Slide 5 — Próximos pasos y timeline (qué empezar el lunes)
Antes de subir la presentación a Canvas, recorre esta lista:
embed-resources: true..html resultante abre correctamente haciendo doble click, sin necesidad de una carpeta auxiliar.Apellido_Nombre_presentacion.html..qmd con el header YAML de format: revealjs que vimos en la sección 2..qmd de la presentación. Ajusta base_size para que sean legibles en slide.## + título-mensaje + gráfico o bullets breves. Nada más.