awesome-r-dataviz
Curated resources for Data Visualization, Drawing & Publishing in R.
ggplot
Additional Plot Types
- ggrgl - 3d extension to ggplot.
- waffle - Make waffle (square pie) charts in R.
- ggridges - Geoms to make ridgeline plots with ggplot2.
- ggchicklet - Create Chicklet (Rounded Segmented Column) Charts.
- ggdendro - Tools to extract dendrogram plot data for use with ggplot.
- ggcorrplot - Visualization of a correlation matrix using ggplot2. [Tutorial]
- corrgram - A simple way to create correlograms from raw data or a correlation matrix.
- ggradar - Radar charts with ggplot2 .
- ggparty - ggplot2 visualizations for the partykit package.
- ggmosaic - Mosaicplots in the ggplot2 framework.
- ggbeeswarm - Column scatter / beeswarm-style plots in ggplot2.
- ggvoronoi - Easy Voronoi diagram heatmaps with ggplot2.
- ggTimeSeries - Taking time series visualisations beyond line charts.
- ggupset - Combination matrix axis for 'ggplot2' to create 'UpSet' plots.
- UpSetR - An R implementation of the UpSet set visualization technique published by Lex, Gehlenborg, et al.
- complex-upset - A library for creating complex UpSet plots with ggplot2 geoms.
- patternplot - Versatile Pie Charts, Bar Charts and Box Plots using Patterns, Colors and Images. [Vignette]
- ggstance - Horizontal ggplot2 components.
- ggthreed - 3d geoms and stats for ggplot.
- gggibbous - Moon charts, a pie chart alternative, for ggplot2.
- ggweekly - Easy, printable, custom calendars and week planners.
- gghdr - Tools for plotting highest density regions in the ggplot2.
- ggpointdensity - Cross Between a Scatter Plot and a 2D Density Plot.
- ggstraw - geom_straw for ggplot2.
- ggVennDiagram - A 'ggplot2' implement of Venn Diagram.
- ggblur - Blurry Point Geom for ggplot2.
- ggbump - A geom for ggplot to create bump plots.
- marginsplot - plot marginal effects and predicted values using the
margins
andggplot2
. - ggimg - The Missing Image Primative for ggplot2.
- ggpattern - ggplot geoms with pattern fills.
- ggfreehand - Add freehand circles to ggplot2 graphs.
- ganttrify - Create beautiful Gantt charts with ggplot2.
- ggstream - A package to make streamplots.
- bulletchartr - Builds bullet charts suitable for tracking KPIs.
- treemapify - Draw treemaps in ggplot2.
- ggborderline - Make line plots that pop.
- ggbraid - Braid two lines and a ribbon in ggplot2.
Themes
- ggthemr - Themes for ggplot2.
- ggthemes - Additional themes, scales, and geoms for ggplot2.
- ggpomological - Pomological plot theme for ggplot2 .
- ggtech - ggplot2 tech themes, scales, and geoms .
- hrbrthemes - Opinionated, typographic-centric ggplot2 themes and theme components.
- vapoRwave - Vaporwave themes and color palettes for ggplot2.
- tvthemes - ggplot2 themes and palettes based on your favorite TV shows.
- Rokemon - Pokemon themed R package.
- visibly - Functions related to R visualizations.
- xkcd - Graphs using the XKCD style (a webcomic of romance, sarcasm, math, and language). [Tutorial]
- ggrough - Convert ggplot2 chart to roughjs.
- ggCorpIdent - A package for ggplot2 graphics in corporate design with custom fonts, colors and logo. [Tutorial]
Palettes 🎨
- paletteer - Collection of most color palettes in a single R package.
- randomcoloR - An R package for generating attractive and distinctive colors.
- fishualize - Color scales based on nature’s most stunning and colorful organisms: teleost fishes.
- harrypotter - A Harry Potter inspired palette for R.
- wesanderson - A Wes Anderson color palette for R.
- nationalparkcolors - R package for color themes inspired by national parks.
- dutchmasters - Colour palettes derived from famous paintings by 17th century Dutch masters.
- pals - Color Palettes and Palette Evaluation Tools.
- jcolors - A set of color palettes I like (or can at least tolerate).
- shades - Simple colour manipulation in R. [Tutorial]
- colorspace - A toolbox for manipulating and assessing colors and palettes.
- tinter - Get tints and shades (and both) of a colour.
- colormind - Generate Color Palettes With AI (using colormind.io palette generator).
- farver - High Performance Colourspace Manipulation in R.
- tricolore - A flexible color scale for ternary compositions.
- colorfindr - Extracts colors from various image types, plots treemaps and 3D scatterplots.
Domain-specific
- ggparliament - Simple parliament plots using ggplot2.
- ggsoccer - Plot soccer event data in R/ggplot2.
- soccermatics - Tools for visualisation and analysis of soccer tracking and event data.
- gganatogram - Create anatograms using ggplot2.
- rchess - Chess package for R.
- brickr - 3D LEGO models and mosaics from images using R and tidyverse.
- desplot - Functions for plotting experimental designs of field trials in agriculture.
- kinship2 - Pedigree creation, plotting, and analytics. [Vignette]
- GeomMLBStadiums - Geoms to draw MLB stadiums in ggplot2.
- ggpacman - A
ggplot2
andgganimate
Version of Pac-Man. - gglcd - About Programmatic production of Liquid Crystal alignment diagrams.
- econocharts - Microeconomic graphs in ggplot2.
- sportyR - R package for drawing regulation playing surfaces for several sports.
- treeheatr - Heatmap-integrated Decision Tree Visualizations.
- gggenes - Draw gene arrow maps in ggplot2.
- ggseqplot - R library for visualizing (social science) sequence data using ggplot2.
Text
- ggtext - Improved text rendering support for ggplot2.
- ggfittext - ggplot2 geoms to fit text into boxes.
- wordcloud2 - R interface to wordcloud for data visualization.
- ggrepel - Repel overlapping text labels away from each other.
- shadowtext - Shadow Text Grob and Layer. [Vignette]
- geomtextpath - Create curved text paths in ggplot2.
- ggpath - Enables robust image grobs in panels and theme elements.
Animations
- gganimate - A Grammar of Animated Graphics.
- animation - A gallery of animations in statistics and utilities to create animations.
- tweenr - A package for interpolating data, mainly for animations.
- transformr - Smooth Polygon Transformations.
Devices
- Cairo - Graphics device using cairographics library for creating bitmap images or output.
- devout - Write R graphics output devices in plain R.
- devoutsvg - Bespoke SVG graphics output device with pattern fill support.
- devoutpdf - A hand-crafted PDF graphics output device written in plain R.
- devoutaudio - An R graphics device which renders to audio.
- devoid - A Graphic Device That Does Nothing (suitable for benchmarking functions).
- devoutrgl - R graphics device to render to {rgl}.
- ragg - AGG provides both higher performance and higher quality than the standard raster devices provided by grDevices.
Miscellaneous
- ggpmisc - Miscellaneous Extensions to
ggplot2
. - ggExtra - Marginal histograms to ggplot2, and more ggplot2 enhancements.
- ggreverse - Reverse a ggplot object back into code.
- datalegreyar - The typeface that melts text and data visualisation for R markdown.
- dbplot - Simplifies plotting of database and sparklyr data.
- ggalt - Extra Coordinate Systems, Geoms, Statistical Transformations & Scales for 'ggplot2'.
- ggpubr - 'ggplot2' Based Publication Ready Plots.
- patchwork - The Composer of ggplots.
- ggally - R package that extends ggplot2. [Tutorial]
- ggforce - Accelerating ggplot2. [Tutorial 1] [Tutorial 2]
- gghighlight - Highlight points and lines in ggplot2.
- ggnomics - A small project to add ggplot2 extensions.
- facetscales - facet_grid with different scales per facet.
- ggflags - flag geom for ggplot2.
- ggecho - ggplot2 stat for echoing data.
- ggfx - Filters and Shaders for 'ggplot2'.
- ggboy - Simulating Game Boy DMG-01 graphics.
- ggframe - data frames that print as ggplots.
- ggwrap - Wrap ggplot2 plots over multiple rows.
- ggsvg - Use SVG images as ggplot points.
- ggblend - Support for blend modes in ggplot2.
- easyalluvial - Create alluvial plots with a single line of code.
- parcats - htmlwidget that creates plotly parallel categories diagrams from easyalluvial plots.
Interactive plots
- plotly - An interactive graphing library for R.
- rbokeh - R interface to Bokeh.
- ggiraph - Make 'ggplot' graphics interactive.
- highcharter - R wrapper for highcharts based on htmlwidgets.
- dygraphs - R interface to dygraphs.
- rCharts - Interactive JS Charts from R.
- billboarder - R Htmlwidget for billboard.js.
- scatterD3 - R scatter plot htmlwidget based on D3.js.
- trelliscopejs - TrelliscopeJS R Package.
- googleVis - Interface between R and the Google Chart Tools.
Network Visualization
- geomnet - Network Visualization in the ggplot2 Framework.
- graphlayouts - New layout algorithms for network visualizations in R.
- visNetwork - R package, using vis.js library for network visualization.
- ggraph - Grammar of Graph Graphics.
- ggdag - An R package for working with causal directed acyclic graphs (DAGs).
Spatial Visualization
- ggmap - A package for plotting maps in R with ggplot2.
- tmap - R package for thematic maps.
- leaflet - R Interface to Leaflet Maps.
- globe4r - Interactive globe visualisations.
- urbnmapr - State and county maps with Alaska and Hawaii.
- cartography - Thematic Cartography. [Vignette]
- mapextrud - Build Extruded Maps in R.
- geofacet - R package for geographical faceting with ggplot2.
- zonebuilder - Divide geographic space into discrete chunks.
Tables
- formattable - Formattable Data Structures.
- kableExtra - Construct Complex Table with knitr::kable() + pipe.
- gt - Easily generate information-rich, publication-quality tables from R.
- DT - R Interface to the jQuery Plug-in DataTables.
- mmtable2 - Allows you to create and combine tables with a ggplot2/patchwork syntax.
Publishing
- blogdown - Create Blogs and Websites with R Markdown.
- bookdown - Authoring Books and Technical Documents with R Markdown.
- posterdown - Use RMarkdown to generate PDF Conference Posters via HTML.
Drawing & Rendering
- magick - Advanced Image-Processing in R. [Tutorial]
- bunny - Useful helper functions for working with magick.
- threed - Three-Dimensional Object Transformations.
- svgpatternusgs - SVG patterns from the U.S. Geological Survey for use within R.
- ggtextures - Drawing textured rectangles and bars with ggplot.
- isocubes - An isometric rendering canvas with cubes as the only graphics primitive.
- rayshader - R Package for 2D and 3D mapping and data visualization.
- rayrender - A raytracer for R. Based on Peter Shirley's "Ray Tracing in One Weekend" book series.
- rayfocus - Add depth of field to images.
- rayshaderanimate - Animate GPX data on a 3D map.
- raytrix - Provides a spatial framework and convenience functions for acessing and translating spatial data.
- rayvista - An R plugin for {rayshader} to view a 3D vista anywhere on earth.
Others
- lattice - High-level data visualization system inspired by Trellis graphics,.
- latticeExtra - Extensions for lattice package.
Learning
Tutorials
- Be Awesome in ggplot2: A Practical Guide to be Highly Effective - R software and data visualization.
- A ggplot2 Tutorial for Beautiful Plotting in R
- A pole vaulting example
- The Evolution of a ggplot
- Introduction to Network Analysis with R. Creating static and interactive network graphs
Books
- Data Visualization with R by Rob Kabacoff.
- Data Visualization. A practical introduction by Kieran Healy.
- Circular Visualization in R by Zuguang Gu.
- Fundamentals of Data Visualization by Claus O. Wilke.
- Geocomputation with R: Chapter 8 Making maps with R by Robin Lovelace, Jakub Nowosad and Jannes Muenchow.
- Essentials of color in R from. Chapter from Data Science for Psychologists by Hansjörg Neth
How to...?
Plots
- Create infographics in R
- Plot wind directions with arrows
- Plot Bump Chart
- Fill area with an image
- Add custom fonts to ggplot
- Add images to the plot
- Plot Bubble Packed Chart
- Create waterfall chart with ggplot2
- Make xkcd style graphs
- Visualize Self-Organizing Map
- Use emojis as scatterplot points
- Make calendar with ggplot
- Drawing a basketball court with R
- Draw a Gantt chart
Maps
- Connections on the map [remarks]
- 3D Lego Map and visualize Columbus Voyage - Rayshade rWalkthrough [GIF]
- Subplots in maps with ggplot2
- Bivariate maps with ggplot2 and sf
Drawing
- Create hex sticker
- Draw Animated TIE Fighter
- Making an animated contour plot
- Draw a clock
- Radial patterns in ggplot2 by Ijeamakaanyene
Animations
Inspirations
Recreating Visualizations
- Minard's famous plot of Napoleon's 1812 retreat from Russia
- ggplot2 meets W. E. B. Du Bois - Visualizing 1900s Black American life in R.
- W. E. Du Bois remakes by Ella Hollowood.
- dataRbeautiful - Recreating data visualizations from "Knowledge is Beautiful" by David McCandless.
- Flowingdata Animated Population Chart
- Recreate The Economist: Global Terrorism Index Plot
- Recreating the vaccination heatmaps in R
- You can replicate almost any plot with R
- Recreating the Datasaurus Dozen Using tweenr and ggplot2
- RedGreenGreyDots patient flow dotplot
- Plot recreations by mohdbilal87
Tidytuesday
30 Days Map Challenge
Art
R Plot Gallery
- The R Graph Gallery - Help and inspiration for R charts.
- Top 50 ggplot2 Visualizations - The Master List (With Full R Code)
- Data Movies and ggplot2
- Leaders’ Ages
- Regional population structures at a glance
- Population age structures of Europe NUTS-3 regions and the US counties
Other
- Data Sketch - Many inspiring data visualizations.
- Recapping radials
- Beautiful Visualizations from Reddit’s DataViz Battle Competition
- Timelines and Visual Histories - Historical visualizations.
- FlowingData - Data Visualizaion ideas and tutorials, i.a. using R.
- MakeoverMonday - Data Visualization weekly learning (mostly using Tableau).