Hola, ¡Quarto!

productivo • reproducible • colaborativo • interactivo

Paula Pereda Suárez
R-Ladies MVD

paula.quarto.pub/hola-quarto

ilustraciones por allison horst

Hola, ¿Quarto?

Quarto unifica y extiende
el ecosistema de R Markdown

Quarto unifica y extiende
el ecosistema de R Markdown


lo unifica para personas que aman R Markdown


lo extiende para gente que no conoce R Markdown

Quarto es un nuevo, open-source,
científico y técnico
sistema de publicación

Quarto es un nuevo, open-source,
científico y técnico
sistema de publicación

el objetivo es hacer el proceso de crear
y colaborar sensiblemente mejor

A schematic representing the multi-language input (e.g. Python, R, Observable, Julia) and multi-format output (e.g. PDF, html, Word documents, and more) versatility of Quarto.

El ecosistema de R Markdown

Hex logos for various packages from the R Markdown ecosystem.

Quarto: La nueva generación de R Markdown

Quarto logo.

Highlights de Quarto

One quadrant of the Quarto logo. Implementación coherente de funciones atractivas y prácticas en todos los productos: tabsets, plegado de código, resaltado de sintaxis, etc.

Two quadrants of the Quarto logo. Valores por defecto más accesibles y mejor soporte para la accesibilidad.

Three quadrants of the Quarto logo. Guías, especialmente útiles para los principiantes: Completado de YAML, errores de sintaxis informativos, etc.

Four quadrants of the Quarto logo. Soporte para otros lenguajes como Python, Julia, Observable, y más a través del motor Jupyter para pedazos de código ejecutables.

¿Cómo funciona?

A schematic representing rendering of Quarto documents from .qmd, to knitr or jupyter, to plain text markdown, then converted by pandoc into any number of output types including html, PDF, or Word document.

Quarto facilita la transición entre formatos

Documento

lesson-1.qmd

title: "Lesson 1"
format: html

Presentación

lesson-1.qmd

title: "Lesson 1"
format: revealjs

Sitio Web

_quarto.yml

project:
  type: website

website: 
  navbar: 
    left:
      - lesson-1.qmd

Quarto facilita el intercambio abierto


Las herramientas que facilitan compartir lo que hacés con el mundo (?) en la web es increíblemente útil.


No sólo es útil para uno, sino para todo el mundo ya que facilita el intercambio abierto de conocimientos para aprender y reutilizar.

Haciendo un reporte

Componentes de un .qmd

Componentes QMD.

Formatear texto con Markdown

Un documento Quarto se hace con un encabezado, algo de texto y algo de código.

Es fácil dar formato al texto utilizando un lenguaje de marcado llamado markup.


¿Qué es Markdown?

Markdown es un lenguaje de marcado ligero que te permite dar formato al texto utilizando una sintaxis sencilla de texto plano.


Para ponerlo simple, puedes escribir en tu archivo Quarto algo así:

Me *encanta* la función `boxplot()` de R, **muchísimo**.


Y obtendrás este resultado en tu reporte:

Me encanta la función `boxplot()` de R, muchísimo.

Énfasis & Código


  • Para poner un texto en negrita, use dos asteriscos ** o guiones bajos __.
  • Para poner el texto en cursiva, use un asterisco * o un guión bajo _.
  • Para añadir algo relacionado con el código, envuélvalo con back-ticks `.

Encabezados

Para crear un encabezado, añada de uno a seis símbolos # antes del texto del encabezado. El número de # determinará el nivel jerárquico y el tamaño tipográfico del encabezamiento.


Por ejemplo, éste será un título de nivel 1 en su documento:

# Título importante


Y éste un título de nivel 2:

## Un poco menos importante

Links e Imágenes

Para crear un hipervínculo, encierra el texto del enlace entre corchetes [] y la URL entre paréntesis ().

[Visite Google](https://www.google.com)


Para añadir una imagen, se añade un signo de exclamación ! a un hipervínculo.

![Texto alternativo de la imagen](url_imagen)

Listas

Para las listas desordenadas, utilice asteriscos *, más + o menos -.

* Elemento 1 * Elemento 2 * Subelemento 1


Para listas ordenadas, utilice números seguidos de un punto.

1. Primer elemento 2. Segundo elemento

Código

  • Los chunks de código empiezan y termina con back-ticks `
```{r}
#| eval: false
#| label: suma
2 + 2
```
  • {r} indica el lenguaje de programación en el que queremos que se evalúe el código.
  • Entre los tres back-ticks, {r} y los tres back-ticks que cierran, va el código, pero también se pueden escribir opciones chunk de códigos identificadas con un #|.
  • También puede haber código en el texto `r `

Más opciones de código

  • #| label: es el nombre del chunk.
  • #| echo: Controla si se muestra el propio código.
  • #| eval: Controla si el código es evaluado.
  • #| include: Controla si tanto el código como su salida se incluyen en el documento.
  • #| output: Controla si se muestra la salida del código.
  • #| warning: false: No se imprimen los warnings, ejemplo: conflicto de versiones.
  • #| warning: false: Controla la visualización de los mensajes generados por el código.
  • #| error: false: Puede ser usado para hacer que compile el documento incluso si algún chunk tiene problemas.

Tabla de resumen de código

Opción Código Ejecutado Código Mostrado Salida Mostrada
#| echo: false No
#| eval: false No No
#| include: false No No
#| output: false No


Colapsar código en el documento

En este taller, nos centrados en las opciones clave de chucks de código en Quarto que mejoran significativamente la legibilidad del informe. Más allá de estas, hay opciones adicionales para explorar si tienes curiosidad 🤓

Gráficos limpios

Controla el tamaño de tu gráfico

  • Quarto permite especificar el tamaño de los gráficos directamente dentro de los parámetros del fragmento de código.

  • Se puede controlar tanto el ancho como el alto de una figura usando las opciones fig.width y fig.height. Estas dimensiones se especifican en pulgadas.

```{r}
#| eval: false
#| fig-width: 3
#| fig-height: 3
# Code for a square chart, 3x3 inches
```
  • En la web, normalmente tenemos 96 píxeles por pulgada (PPI). Y por defecto, un documento Quarto se renderiza con un ancho de 900 píxeles.

  • Por lo tanto, si el gráfico tiene una anchura de 9 pulgadas, ocupará toda la anchura de la página.

Controla el tamaño de tu gráfico

Por favor, consulte los siguientes ejemplos para una mejor comprensión:

Responsividad

  • La capacidad de respuesta en el diseño web significa que su contenido, incluidas las figuras, se ajusta al tamaño de la pantalla del dispositivo en el que se está visualizando. Esto es crucial para mantener una experiencia fácil de usar.

  • Creanme, habrá gente leyendo el reporte en su teléfono.

  • Quarto se destaca en la creación de figuras responsivas automáticamente 🎉. Si el tamaño especificado en pulgadas excede el ancho de la pantalla, Quarto inteligentemente redimensionará la figura para ajustarse al ancho completo de la pantalla mientras mantiene la relación de aspecto original.

Responsividad

  • La figura tiene un ancho de 8 pulgadas. Al disminuir la anchura de la pantalla, se ajusta automáticamente para ocupar el 100% de la anchura disponible.
Responsiveness.

Alineación de figuras

Las distintas preferencias de alineación de las figuras, como izquierda, centro o derecha, pueden gestionarse fácilmente en Quarto mediante los parámetros chunk fig.align = 'left', fig.align = 'center', or fig.align = 'right', respectivamente.

Múltiples figuras


  • La visualización de varios gráficos uno al lado del otro es un requisito frecuente para un informe limpio de Quarto. Por defecto, los gráficos generados dentro de un único fragmento de código se muestran uno tras otro verticalmente, consumiendo un espacio considerable en la página.

  • Quarto incluye amplias funciones para personalizar la disposición de las figuras. Una de las opciones más sencillas es la función layout-ncol. Permite especificar el número de columnas en las que deben mostrarse los gráficos.

  • Una ventaja añadida de este enfoque es su capacidad de respuesta. Cuando se visualizan en pantallas más estrechas, los gráficos se apilan verticalmente de forma automática, lo que garantiza su claridad y legibilidad.

Quarto aplana la curva de aprendizaje

A schematic showing many qmd files, going through Quarto, to generate an HTML, PDF, or Word document or more. The Quarto logo is depicted as a baseball a penguin is spinning.

Quarto puede crecer con sus usuarios de una manera profunda


A schematic showing many computing languages (R, Python, Julia, Observable, and more) going into many single qmd files, going through Quarto, to generate an HTML, PDF, or Word document or more. The Quarto logo is depicted as a baseball a penguin is spinning.

Interactividad

Tablas interactivas con DT

Esta es una de mis técnicas preferidas para mostrar Quarto 😍.

Con sólo dos líneas de código adicionales, podés demostrar una tabla interactiva que permite:

  • ordenar
  • filtrar
  • buscar en
  • paginación

Esta función es muy útil para mostrar el conjunto de datos de entrada si no es demasiado grande. Ofrece a los lectores la comodidad de acceder a los datos directamente desde el informe.

La magia de esta funcionalidad reside en la biblioteca DT. DT son las siglas de DataTables: la biblioteca JavaScript que hay detrás.

Tablas interactivas con DT

Gráficos interactivos

A esta altura nuestro informe Quarto es un documento HTML, esencialmente un sitio web en miniatura 😳

Gráficos interactivos

Y ahora la parte mágica 🧙

Envuelve tu objeto p en la función ggplotly() de plotly, ¡y tu scatterplot será interactivo!

paula.quarto.pub/hola-quarto

Gracias

Two penguins. The orange one is holding the Quarto logo. The blue one is looking at the orange one.