background preloader


Facebook Twitter

R Graphics Cookbook, 2nd edition. R Graph Catalog. Ggplot2 graphics companion. Ggplot2tor. Top 50 ggplot2 Visualizations (With R Code) What type of visualization to use for what sort of problem?

Top 50 ggplot2 Visualizations (With R Code)

This tutorial helps you choose the right type of chart for your specific objectives and how to implement it in R using ggplot2. This is part 3 of a three part tutorial on ggplot2, an aesthetically pleasing (and very popular) graphics framework in R. This tutorial is primarily geared towards those having some basic knowledge of the R programming language and want to make complex and nice looking charts with R ggplot2.

Part 1: Introduction to ggplot2, covers the basic knowledge about constructing simple ggplots and modifying the components and aesthetics.Part 2: Customizing the Look and Feel, is about more advanced customization like manipulating legend, annotations, multiplots with faceting and custom layoutsPart 3: Top 50 ggplot2 Visualizations - The Master List, applies what was learnt in part 1 and 2 to construct other types of ggplots such as bar charts, boxplots etc. Top 50 ggplot2 Visualizations - The Master List 1. 2. 3. 4. Why I use ggplot2. If you’ve read my blog, taken one of my classes, or sat next to me on an airplane, you probably know I’m a big fan of Hadley Wickham’s ggplot2 package, especially compared to base R plotting.

Why I use ggplot2

Not everyone agrees. Among the anti-ggplot2 crowd is JHU Professor Jeff Leek, who yesterday wrote up his thoughts on the Simply Statistics blog: Comparing ggplot2 and R Base Graphics. In R, the open source statistical computing language, there are a lot of ways to do the same thing.

Comparing ggplot2 and R Base Graphics

Especially with visualization. R comes with built-in functionality for charts and graphs, typically referred to as base graphics. Then there are R packages that extend functionality. Ggplot flipbook. Ggplot(data = college_majors %>% mutate(Unemployed = ifelse(Unemployed == 0, 1, Unemployed))) + aes(Total) + aes(y = Unemployed) + aes(label = paste0(Major, "\n$", Median, " annual" )) + aes(col = Median/1000) + scale_x_log10(breaks = c(1000,10000, 100000), labels = c(1000,10000, 100000)/1000) +

ggplot flipbook

Using ggplot2 in packages. This vignette is intended for package developers who use ggplot2 within their package code.

Using ggplot2 in packages

As of this writing, this includes over 2,000 packages on CRAN and many more elsewhere! Programming with ggplot2 within a package adds several constraints, particularly if you would like to submit the package to CRAN. In particular, programming within an R package changes the way you refer to functions from ggplot2 and how you use ggplot2’s non-standard evaluation within aes() and vars(). Referring to ggplot2 functions. Esquisse: Explore and Visualize Your Data Interactively. The purpose of this add-in is to let you explore your data quickly to extract the information they hold.

esquisse: Explore and Visualize Your Data Interactively

You can only create simple plots, you won’t be able to use custom scales and all the power of ggplot2. This is just the start! This addin allows you to interactively explore your data by visualizing it with the ggplot2 package. It allows you to draw bar plots, curves, scatter plots, histograms, boxplot and sf objects, then export the graph or retrieve the code to reproduce the graph.

See online documentation : If you find bugs, please open an issue. Practical ggplot2. The R package ggplot2 provides a powerful and flexible approach to data visualization, and it is suitable both for rapid exploration of different visualization approaches and for producing carefully crafted publication-quality figures.

Practical ggplot2

However, getting ggplot2 to make figures that look exactly the way you want them to can sometimes be challenging, and beginners and experts alike can get confused by themes, scales, coords, guides, or facets. This repository houses a set of step-by-step examples demonstrating how to get the most out of ggplot2, including how to choose and customize scales, how to theme plots, and when and how to use extension packages. The examples shown are based on the book “Fundamentals of Data Visualization.” However, there are minor differences between the figures here and the ones in the book. Most importantly, the book uses the Myriad Pro font family, which is not freely available.

Designing ggplots. Ggplot2 extensions. Creating ggplot2 Extensions. Intro to ggridges. Claus O.

Intro to ggridges

Wilke Ridgeline plots are partially overlapping line plots that create the impression of a mountain range. They can be quite useful for visualizing changes in distributions over time or space. Geoms The ggridges package provides two main geoms, geom_ridgeline and geom_density_ridges. Ridgelines. Intro to gghighlight: Highlight ggplot's Lines and Points with Predicates. Suppose we have a data that has too many series like this: set.seed(2) d <- purrr::map_dfr( letters, ~ data.frame(idx = 1:400, value = cumsum(runif(400, -1, 1)), type = ., stringsAsFactors = FALSE)) For such data, it is almost impossible to identify a series by its colour as their differences are so subtle.

Intro to gghighlight: Highlight ggplot's Lines and Points with Predicates

Gghighlight 0.2.0. Gghighlight 0.2.0 is on CRAN a while ago.

gghighlight 0.2.0

This post briefly introduces the three new features. For basic usages, please refer to “Introduction to gghighlight”. keep_scales To put it simply, gghighlight doesn’t drop any data points but drops their colours. This means, while non-colour scales (e.g. x, y and size) are kept as they are, colour scales get shrinked. Library(gghighlight) library(patchwork) set.seed(3) d <- data.frame( value = 1:9, category = rep(c("a","b","c"), 3), cont_var = runif(9), stringsAsFactors = FALSE ) p <- ggplot(d, aes(x = category, y = value, color = cont_var)) + geom_point(size = 10) + scale_colour_viridis_c() p1 <- p + ggtitle("original") p2 <- p + gghighlight(dplyr::between(cont_var, 0.3, 0.7), use_direct_label = FALSE) + ggtitle("highlighted") p1 * p2 You can see the colour of the points are different between the left plot and the right plot because the scale of the colours are different.

Ggfreehand. Gcc_ggplot. Ggbrush. GitHub ggfittext. Population pyramids with ggplot2. Population Pyramids - ggplot2. Making Back-to-Back Histograms. A colleage of mine asked me how to do back to back histograms (instead of on top of each other). I feel as though there should be a function like voilin plot from the vioplot package. Voilin plots are good for displaying data, but the violin must have the left and right (or top and bottom) of the violin to be from the same distribution, and therefore are symmetrical. Ggrough - Convert ggplot2 charts to roughjs. Sinhrks/ggfortify. Ggstatsplot. Ggdist cheatsheet. Ggpage version 0.2.0 showcase.

Ggpage version 0.2.0 In this post I will highlight a couple of the new features in the new update of my package ggpage. first we load the packages we need, which is tidyverse for general tidy tools, ggpage for visualization and finally rtweet and rvest for data collection. GgTimeSeries. Scatterpie for plotting pies on ggplot2. Plotting pies on ggplot/ggmap is not an easy task, as ggplot2 doesn’t provide native pie geom. The pie we produced in ggplot2 is actually a barplot transform to polar coordination. This make it difficult if we want to produce a map like the above screenshot, which was posted by Tyler Rinker, the author of R package pacman. The question remained unsolved until he discover that ggtree can do it. The ggtree solution is to use the subview function, which is good for embed subplots and can embed different types of plots and even user’s own image files. But it has its own drawback for plotting pies on map. Thanks to the ggforce package, which provide a native implementation of the pie geom, we can plot pies on cartesian coordination.

I created a wrapper function to make it more easy to plot a set of pies. For example, suppose we have the following data: Ggplot Quality Control Charts. The ggQC package is a quality control extension for ggplot. Use it to create XmR, XbarR, C and many other highly customizable Control Charts. Additional statistical process control functions include Shewart violation checks as well as capability analysis. If your process is running smoothly, visualize the potential impacted of your next process improvement with a Pareto chart. To learn more, read on! To get started with ggQC, install it from CRAN by running the following code: install.packages("ggQC") Waffle 1.0 Font Awesome 5 Pictograms and More. The {waffle} package got some 💙 this week and now has a substantially improved geom_waffle() along with a brand new sibling function geom_pictogram() which has all the powerful new features of geom_waffle() but lets you use Font Awesome 5 brand and solid glyphs to make isotype pictograms.

Basic Waffle Chart Dark Lines Waffle. The ggforce Awakens (again) After what seems like a lifetime (at least to me), a new feature release of ggforce is available on CRAN. ggforce is my general purpose extension package for ggplot2, my first early success, what got me on twitter in the first place, and ultimately instrumental in my career move towards full-time software/R development. Despite this pedigree ggforce haven’t really received much love in the form of a feature release since, well, since it was released. Accelerate your plots with ggforce. By Edgar Ruiz In this post, I will walk you through some examples that show off the major features of the ggforce package. A Flurry of Facets. The remainder of the release centers around facets and a few geoms that has been made specifically for them. Enter the matrix The biggest news is undoubtedly the introduction of facet_matrix(), a facet that allows you to create a grid of panels with different data columns in the different rows and columns of the grid.

Ggeconodist: A Different Look At Distributions. Despite being a full-on denizen of all things digital I receive a fair number of dead-tree print magazines as there’s nothing quite like seeing an amazing, large, full-color print data-driven visualization up close and personal. I also like supporting data journalism through the subscriptions since without cash we will only have insane, extreme left/right-wing perspectives out there.

Ggtext: Improved text rendering for ggplot2. Signs. Signs makes it easy to use typographically accurate minus signs in plots, markdown, dashboards, or other presentations. Ask any typography nut, and they can walk you through the differences among 4 symbols that look nearly identical: the hyphen-minus (-, ASCII 45, next to the zero key)the en-dash (–, Unicode 2013, Alt+0151 on Windows)the em-dash (—, Unicode 2014, Alt+0150 on Windows)the true minus (−, Unicode 2212) Pixel art of ggplot2 faceting using geofacet. I just discovered an interesting ggplot2 extension, geofacet, that supports arranging facet panels that mimics geographic topoloty.

After playing with it, I realized that it is not only for visualizing geo-related data, but also can be fun for presenting data to mimics pixel art. Here is an example using the Turkey shape: Ggannotate. Ggpattern. Ggfx: Say Goodbye to "Good Taste" Ggplot2 Theme Elements. Ggplot2 Theme Builder. Intro to ggthemes.

Tuning ggplot themes. The ggthemr package. Thematic. Ggplot2 tech themes, scales, and geoms. Hrbrthemes: Opinionated, typographic-centric ggplot2 themes and theme components. Tvthemes: ggplot2 palettes and themes from your favorite TV shows! Scientific Journal and Sci-Fi Themed Color Palettes for ggplot2. Ggpomological: A Pomological ggplot2 Theme. GgCyberPunk. How the BBC Visual and Data Journalism team works with graphics in R. Naming Manual Colors with ggplot2. Paletteer: Hundreds of color palettes in R. Creating corporate colour palettes for ggplot2.

Studio Ghibli Colour Palettes. Swatches package to read palette files. Override.aes : Controlling legend appearance. Change fonts in ggplot2, and create xkcd style graphs. Adding Custom Fonts to ggplot in R. Ggplot2: multiple legends for the same aesthetic. Changing Glyph in legend in ggplot2. How to format plots for publication using ggplot2 (with some help from Inkscape)

Axis guide — guide_axis. Lubridate/ggplot date helpers. Subplots in maps with ggplot2. Arranging subplots with ggplot2. Ggplot2 Easy way to mix multiple graphs on the same page. Patchwork: The Composer of ggplots. Patchwork: Alignment Across Multiple Pages. Patch it up and send it out. Insetting a new patchwork version. Reversing the order of a ggplot2 legend. Filling Ordered Facets From the Bottom Row. Function to label facets with letters in ggplot2. Convert plot to grob and ggplot object. Add Text Annotations to ggplot2 Faceted Plot. Math Expressions with Facets in ggplot2. Ggbillboard. Create smooth animations in R with tweenr. Gganimate has transitioned to a state of release · Data Imaginist. Gganimate Wiki. Shading between two lines – ggplot. Setting individual axis limits with facet_wrap and scales = "free" in ggplot2. Change colour of density plots in ggplot2. How to add texture to fill colors in ggplot2?

Remove leading 0 with ggplot2. Ggplot2 Quick Ref: size. Using great circles and ggplot2 to map arrival/departure of 2014 US Open Tennis Players – Adventures in Analytics and Visualization. Can R and ggvis help solve Serial's murder? Recreating the vaccination heatmaps in R. Plotting tables alongside charts in R. A Couple of Handy ggplot Tricks – Using Environmental Variables and Saving Charts. Supreme Annotations. Images as x-axis labels. Creating Function Plots Using ggplot2.