Skip to contents

Building a plot

Start a plot from a data frame, an sf object, or an igraph graph, then render it or write it to a file.

vplot()
Start a plot specification
vgraph()
Start a graph (network) plot
vdendrogram()
Dendrogram from a clustering
vsankey() mark_sankey()
Sankey (flow) diagram
vchord() mark_chord()
Chord diagram
vhierarchy() mark_hierarchy()
Hierarchy diagrams: sunburst, icicle, treemap, circle-pack
vvenn()
Venn / Euler diagrams
vwaffle()
Waffle chart
vsparkline()
Sparklines — tiny word-sized charts
vtable()
Tables with sparkline columns
gt_vsparkline()
Add a vellumplot sparkline column to a gt table
render_plot()
Render a plot to a file
plot_svg()
Render a plot to a self-contained SVG string
plot_data_uri()
Encode a plot as a data URI
pdf_pages()
Write a multi-page PDF
render_all()
Render many plots to separate files, in parallel
PlotSpec()
The plot specification

Marks

Layers that draw data. Scales train across every mark on the panel.

Points, lines, and bars

mark_point() mark_line() mark_rule() mark_bar()
Add marks to a plot
mark_count()
Count overlapping points
mark_area() mark_ribbon() mark_step()
Area, ribbon, and step marks
mark_segment()
Segment mark
mark_abline() mark_function()
Reference lines and function curves

Distributions and intervals

Text, pie, and large data

mark_text() mark_label()
Text marks
mark_series_label()
Direct series labels
mark_outlier_label()
Label the outliers
mark_text_path()
Text set along a path
mark_pie() mark_donut()
Pie and donut charts
mark_image()
Draw images at data points
mark_datashade()
Datashade a large point cloud

Spatial and network

mark_sf()
Draw simple-feature (sf) geometries
mark_sf_label()
Label sf features at their interior point
mark_scalebar() mark_compass()
Map decorations
mark_edges() mark_edge_bundle() mark_flow_map() mark_nodes() mark_node_text() mark_edge_text() mark_node_hull() mark_node_pie()
Network (graph) marks
scale_edge_width()
Edge-width scale
scale_edge_color() scale_edge_colour() scale_edge_alpha() scale_edge_linetype()
Edge colour / alpha / line-type scales

Scales

Map data values to visual properties, with trained domains and guides.

scale_x_continuous() scale_y_continuous() scale_x_discrete() scale_y_discrete()
Position scales
scale_x_binned() scale_y_binned()
Binned position scales
scale_x_date() scale_y_date() scale_x_datetime() scale_y_datetime() scale_x_time() scale_y_time()
Date and time position scales
scale_color_continuous() scale_color_discrete() scale_color_manual() scale_color_gradient() scale_color_gradient2() scale_fill_continuous() scale_color_gradientn() scale_fill_gradientn() scale_colour_gradientn() scale_fill_discrete() scale_fill_manual() scale_fill_gradient() scale_fill_gradient2() scale_colour_continuous() scale_colour_discrete() scale_colour_manual() scale_colour_gradient() scale_colour_gradient2()
Colour scales
scale_color_viridis_c() scale_color_viridis_d() scale_fill_viridis_c() scale_fill_viridis_d() scale_color_brewer() scale_fill_brewer() scale_color_distiller() scale_fill_distiller() scale_colour_viridis_c() scale_colour_viridis_d() scale_colour_brewer() scale_colour_distiller()
Viridis and ColorBrewer scales
scale_fill_binned() scale_color_binned() scale_color_steps() scale_colour_steps() scale_fill_steps()
Binned (classed) colour scales
scale_shape()
Shape scale
scale_pattern()
Pattern (texture) scale
scale_size() scale_size_area()
Size scale
scale_alpha() scale_alpha_continuous()
Alpha (opacity) scale
scale_linetype() scale_linetype_discrete()
Line-type scale
scale_color_identity() scale_fill_identity() scale_colour_identity() scale_size_identity() scale_shape_identity() scale_alpha_identity() scale_linetype_identity()
Identity scales
lims() xlim() ylim()
Set scale limits with a shortcut
sec_axis() dup_axis()
Secondary axes
guides() guide_none() guide_legend() guide_colourbar() guide_colorbar() guide_coloursteps() guide_colorsteps()
Control a scale's legend
resolve_scale()
Resolve scales as shared or independent across panels
after_stat()
Map an aesthetic to a statistic computed by a stat

Coordinates and facets

coord_cartesian() coord_flip() coord_fixed() coord_equal()
Coordinate systems
coord_trans()
Transformed coordinate system
coord_polar() coord_radial()
Polar coordinates
coord_sf()
Map coordinate system
facet_wrap() facet_grid()
Facet a plot into a grid of panels
add_marginal()
Add marginal distributions to a plot
position_nudge() position_jitter() position_dodge() position_dodge2() position_sina() position_jitterdodge()
Position adjustments

Composition

Combine plots into a single figure, or repeat one over a variable.

concat() wrap_plots() hconcat() vconcat()
Arrange plots side by side
inset()
Overlay a plot as an inset
plot_spacer()
Reserve an empty cell in a composition
area()
Define a layout area for design =
repeat_()
Repeat a view across fields
compose_annotation()
Annotate a composition

Themes and annotation

Layer effects

Glow, shadow, outline, motion trails, hand-drawn sketching, and gradient / pattern fills.

glow()
Neon glow layer effect
shadow()
Shadow layer effect
outline()
Outline (halo) layer effect
motion() echo()
Motion-trail layer effects
sketch()
Hand-drawn ("sketch") rendering
linear_gradient() radial_gradient()
Gradient fill paints
pattern_stripe() pattern_crosshatch() pattern_grid() pattern_dot() pattern_checker()
Pattern (hatch) fills
pattern_hatch()
Crisp vector hatch fill
vl_pattern()
Custom tiling-pattern fill
clip_to() clip_layer() set_mask()
Clip or mask a plot to a geometry

Interactivity

Declare interactions as part of the plot — selections bound to gestures, conditional encodings, filters, and scale-domain binds. Inert on a static render; enacted by a host such as vellumwidget.

select_point() select_interval()
Declare an interactive selection
select_neighbours()
Highlight a node's graph neighbourhood
condition()
Conditional encoding: style by selection membership
add_selection()
Register a free-standing selection on a plot
filter_by()
Filter a view by a selection
bind_scale()
Bind a panel's view to a selection (overview + detail)
inspect_source()
Inspect the data behind a clicked element (click-to-source)
interaction_model()
The interaction model of a compiled plot

Animation

Non-reactive keyframe animation: compile a plot into one keyframe per state, train the scales once over all states and freeze them, then tween and encode the frames (GIF / APNG) in vellum’s parallel Rust backend.

transition_states()
Animate a plot across the states of a variable
transition_time()
Animate a plot along a continuous time
transition_reveal()
Reveal a plot progressively along a variable
ease_aes()
Set the easing of an animation's frames
animate()
Build a keyframe animation from a plot
anim_save()
Write a keyframe animation to a file

Accessibility and provenance

Attach a text alternative for screen readers, trace each drawn element back to its data, or verify a figure against the data it was drawn from.

plot_alt()
Text alternative (alt text) for a plot
plot_lint()
Lint a plot for legibility and accessibility problems
plot_provenance()
Inspect the compiled-scene provenance of a plot
provenance_join()
Join a plot's provenance to its rendered geometry
provenance_payload()
A widget-ready provenance payload (click-to-source)
plot_manifest()
A reproducibility manifest for a plot
plot_verify()
Verify a rendered figure against its data

Specs, agents, and interoperability

Serialize a plot to a portable spec (and back), generate and validate plots from an LLM / MCP agent, and translate to and from Vega-Lite.

as_spec() from_spec()
Serialize a plot to a plain spec (and back)
spec_to_json() spec_from_json()
Serialize a plot to / from a JSON spec string
spec_schema()
The vellumplot spec JSON Schema
spec_fields()
Summarise a data frame's fields for a model
spec_diagnose() vplot_from_spec()
Diagnose a spec against its data
vplot_ask()
Generate a plot from a natural-language request
mcp_serve()
Run the vellumplot MCP server
spec_to_vegalite() spec_from_vegalite()
Convert between a vellumplot spec and a Vega-Lite specification

Package

vellumplot vellumplot-package
vellumplot: A Grammar of Graphics on the 'vellum' Backend