• Overview
  • Get Started
  • Guide
  • Reference
  • Gallery

Welcome to Quarto

Quarto® is an open-source scientific and technical publishing system built on Pandoc

  • Create dynamic documents with Python, R, and JavaScript via integration with Jupyter, Knitr, and Observable
  • Publish high-quality articles, reports, presentations, websites, and books in HTML, PDF, MS Word, ePub, and more.
  • Author with scientific markdown, including equations, citations, crossrefs, figure panels, callouts, advanced layout, and more.

Get Started Guide

Hello, Quarto

Weave together narrative text and code to produce elegantly formatted output. Quarto documents are fully reproducible. Use markdown with executable code cells (shown below) or render existing Jupyter Notebooks using any Jupyter kernel.

---
title: "matplotlib demo"
format:
  html:
    code-fold: true
jupyter: python3
---

For a demonstration of a line plot on a polar axis, see @fig-polar.

```{python}
#| label: fig-polar
#| fig-cap: "A line plot on a polar axis"

import numpy as np
import matplotlib.pyplot as plt

r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(
  subplot_kw = {'projection': 'polar'} 
)
ax.plot(theta, r)
ax.set_rticks([0.5, 1, 1.5, 2])
ax.grid(True)
plt.show()
```

Quarto is a multi-language, next generation version of R Markdown from RStudio, and includes dozens of new features and capabilities (while at the same being able to render most existing Rmd files without modification).

---
title: "ggplot2 demo"
author: "Norah Jones"
date: "May 22nd, 2021"
format: 
  html:
    fig-width: 8
    fig-height: 4
    code-fold: true
---

## Air Quality

@fig-airquality further explores the impact of temperature on ozone level.

```{r}
#| label: fig-airquality
#| fig-cap: Temperature and ozone level.
#| warning: false

library(ggplot2)

ggplot(airquality, aes(Temp, Ozone)) + 
  geom_point() + 
  geom_smooth(method = "loess"
)
```

Quarto includes native support for Observable JS, a set of JavaScript enhancements created by Mike Bostock (the author of D3). Observable JS uses a reactive execution model, and is especially well suited for interactive data exploration and analysis.

---
title: "observable plot"
author: "Norah Jones"
format: 
  html: 
    code-fold: true
---

## Seattle Precipitation by Day (2012 to 2016)

```{ojs}
data = FileAttachment("seattle-weather.csv")
  .csv({typed: true})
  
Plot.plot({
  width: 800, height: 500, padding: 0,
  color: { scheme: "blues", type: "sqrt"},
  y: { tickFormat: i => "JFMAMJJASOND"[i] },
  marks: [
    Plot.cell(data, Plot.group({fill: "mean"}, {
      x: d => d.date.getUTCDate(),
      y: d => d.date.getUTCMonth(),
      fill: "precipitation", 
      inset: 0.5
    }))
  ]
})
```

Dynamic Documents

Execute code with Jupyter, Knitr, and Observable. Create reproducible documents that can be regenerated when underlying assumptions or data change.

Learn more »

Beautiful Publications

Publish high-quality articles, reports, presentations, websites, and books in HTML, PDF, MS Word, ePub, and more. Use a single source document to target multiple formats.

Learn more »

Scientific Markdown

Pandoc markdown has excellent support for LaTeX equations and citations. Quarto adds extensions for cross-references, figure panels, callouts, advanced page layout, and more.

Learn more »

Authoring Tools

Use your favorite tools including Jupyter Lab, RStudio IDE, VS Code, or any text editor. Use the Quarto visual markdown editor for long-form documents.

Learn more »

Interactivity

Engage readers by adding interactive data exploration to your documents using Jupyter Widgets, htmlwidgets for R, Observable JS, and Shiny.

Learn more »

Websites and Books

Publish collections of documents as a website. Create books and manuscripts in both print formats (PDF and MS Word) and online formats (HTML and ePub).

Learn more »

Analyze. Share. Reproduce. Your data has a story—tell it with Quarto.

Get Started

Proudly supported by
  • About
  • License
  • Trademark