Quarto: figuras, integración y publicación
Universidad El Bosque
18 de junio de 2026
patchworkParte 1
Figuras en documentos Quarto

Las figuras en bloques de código aceptan opciones que controlan su apariencia en el documento:
| Opción | Descripción |
|---|---|
fig-cap |
Pie de figura (aparece debajo de la imagen) |
fig-width |
Ancho en pulgadas (por defecto: 7) |
fig-height |
Alto en pulgadas (por defecto: 5) |
fig-align |
Alineación: left, center, right |
fig-alt |
Texto alternativo para lectores de pantalla |
out-width |
Ancho en el documento como porcentaje ("70%") |
fig-alt no aparece en el documento visible, pero es leído por tecnologías de asistencia. Añadirlo es buena práctica: fig-alt: "Diagrama de caja que muestra la distribución de masa corporal de tres especies de pingüinos".
Actividad 1 · 8 min
Añade una figura con caption
En tu documento mi_reporte.qmd, inserta o modifica un bloque de código con una figura de ggplot2:
#| fig-cap: "..." con una descripción de la figura#| fig-width: y #| fig-height: hasta que la figura se vea bien#| echo: false para que solo aparezca la figura, sin el códigoParte 2
Referencias cruzadas para figuras
fig-: el prefijo para referenciasIgual que tbl- para tablas, las figuras usan el prefijo fig- en el label:
En el bloque de código:
```{r}
#| label: fig-masas
#| fig-cap: "Masa corporal por especie de pingüino"
#| echo: false
pinguinos |>
ggplot(aes(x = species,
y = body_mass_g,
fill = species)) +
geom_boxplot(show.legend = FALSE) +
...
```En el texto:
Quarto numera las figuras automáticamente en documentos (HTML, PDF, Word). El prefijo fig- en el label es obligatorio y la figura debe tener fig-cap para que la referencia cruzada funcione.
Resultado renderizado:
Como se observa en la Figura 1, la especie Gentoo tiene la mayor masa corporal.
Actividad 2 · 8 min
Referencias cruzadas en tu documento
En tu documento mi_reporte.qmd:
#| label: fig-xxx a tu figura (reemplaza xxx con un nombre corto)@fig-xxx en el texto para citar la figuragt con #| label: tbl-xxx, cítala con @tbl-xxxParte 3
Composición de figuras con patchwork
patchworkpatchwork combina objetos ggplot2 con operadores simples y etiqueta los paneles automáticamente:
```{r}
#| label: fig-paneles
#| fig-cap: "Variables morfológicas por especie. (a) Masa corporal; (b) largo del pico."
#| echo: false
library(patchwork)
p1 <- pinguinos |>
ggplot(aes(x = species, y = body_mass_g,
fill = species)) +
geom_boxplot(show.legend = FALSE) +
labs(x = NULL, y = "Masa (g)") +
theme_minimal()
p2 <- pinguinos |>
ggplot(aes(x = species, y = bill_length_mm,
fill = species)) +
geom_boxplot(show.legend = FALSE) +
labs(x = NULL, y = "Pico (mm)") +
theme_minimal()
p1 + p2 +
plot_annotation(tag_levels = "a")
```include_graphics()Para incluir una imagen desde disco o desde una URL:
Con knitr::include_graphics() (permite referencia cruzada):
```{r}
#| label: fig-esquema
#| fig-cap: "Estructura del proyecto"
#| out-width: "60%"
#| fig-align: center
knitr::include_graphics("imagenes/esquema.png")
```Con Markdown (simple, pero sin referencia cruzada):
knitr::include_graphics() es la opción correcta cuando necesitas citar la imagen en el texto con @fig-xxx. La ruta va relativa al archivo .qmd.
out-width controla el tamaño de visualización como porcentaje del ancho disponible, sin afectar la resolución original de la imagen.
Parte 4
El documento integrado
En lugar de repetir las mismas opciones en cada bloque, defínelas una sola vez en el YAML:
Con echo: false global, ningún bloque mostrará el código. Para anularlo en un bloque concreto, agrega la opción directamente en ese bloque:
| Opción global | Efecto |
|---|---|
echo: false |
Oculta el código en todos los bloques |
warning: false |
Suprime advertencias |
message: false |
Suprime mensajes de paquetes |
eval: false |
No ejecuta ningún bloque |
cache: true |
Guarda resultados en caché |
Las opciones del YAML son los valores por defecto. Las opciones en un bloque individual siempre las anulan.
Un documento bien organizado integra todos los elementos que hemos visto:
@fig-xxx · tablas con @tbl-xxx · valores con `r ...`El bloque setup carga paquetes y datos antes que cualquier otro bloque. #| include: false suprime el bloque por completo: ni el código, ni los resultados, ni los mensajes de carga aparecen en el documento. Es distinto de #| echo: false, que oculta el código pero sí muestra los resultados.
Ejemplo descargable con figuras, tablas, referencias cruzadas y código en línea: ejemplo_reporte.qmd · referencias.bib
Actividad 3 · 10 min
Organiza y completa tu documento
Dale a tu mi_reporte.qmd la estructura de un documento completo:
execute: echo: false al YAML (código oculto por defecto)setup al inicio con #| include: false que cargue todos los paquetes y datos#), al menos una figura con @fig-, una tabla con @tbl- y al menos una cita con @claveParte 5
Publicación

Por defecto, un documento HTML de Quarto genera varios archivos auxiliares. Para compartirlo como un único archivo portable:
Esto incrusta CSS, JavaScript e imágenes directamente en el .html, que se puede enviar por correo o abrir sin conexión desde cualquier ordenador.
En versiones anteriores de Quarto la opción era self-contained: true, que sigue funcionando. La opción actual y recomendada es embed-resources: true.
Posit Connect Cloud es el servicio gratuito de Posit para publicar documentos Quarto directamente desde RStudio:
mi_reporte.qmd abierto, haz clic en el botón Publish de la barra del editor (esquina superior derecha, icono de flecha azul)Posit Connect Cloud reemplaza a Quarto Pub, que dejó de aceptar nuevos proyectos. El proceso de publicación es idéntico: el botón Publish de RStudio gestiona todo.
| Servicio | Ideal para |
|---|---|
| Posit Connect Cloud | Documentos individuales o colecciones, publicación gratuita con un clic desde RStudio |
| GitHub Pages | Sitios completos con control de versiones; lo que usa el sitio de este curso |
| Posit Connect | Versión institucional o corporativa con control de acceso y despliegue privado |
| Netlify | Sitios con dominio personalizado y despliegue continuo |
Para este curso, Posit Connect Cloud es la opción más directa. Si ya usas GitHub y quieres publicar más contenido, GitHub Pages es el siguiente paso natural (es lo que usa el sitio de este curso).
Actividad final · 20 min
Publica tu documento en Posit Connect Cloud
mi_reporte.qmd renderiza sin erroresAntes de terminar…
Quiz rápido
¿Qué opción de bloque añade un pie de figura en el documento y hace posible citarla con @fig-xxx?
fig-titlefig-labelfig-capcaption✓ c) fig-cap añade el pie de figura y, junto con label: fig-xxx, habilita la referencia cruzada. Sin fig-cap no se genera la referencia aunque exista el label.
¿Qué función de patchwork añade etiquetas de panel (a, b, c…) a la composición?
label_panels("a")tag_plots(letters)plot_annotation(tag_levels = "a")annotate(tag = "a")✓ c) plot_annotation(tag_levels = "a") añade las etiquetas (a), (b), (c)… a cada panel. Se puede cambiar a números con "1", romanos con "i", o mayúsculas con "A".
Quieres que tu documento HTML sea un único archivo portable que no dependa de archivos externos. ¿Qué opción usas en el YAML?
standalone: trueembed-resources: trueformat: single-htmloutput: bundle✓ b) embed-resources: true incrusta todos los recursos (CSS, JavaScript, imágenes) en el propio archivo .html. El resultado es un único archivo que se puede compartir o abrir sin conexión.
Hasta la próxima sesión
¡Gracias!
Curso de R · Universidad El Bosque · Junio 2026 · ↩︎ Sitio del curso