Session Summary:

The inner workings of {ggplot2} are difficult to grasp even for experienced users because its internal object-oriented (ggproto) system is hidden from user- facing functions, by design. This is exacerbated by the foreignness of ggproto itself, which remains the largest hurdle in the user-to-developer transition. However this needs not to be the case: ggplot internals have clear parallels to data wrangling, where data is passed between methods that take inputs and return outputs. Capitalizing on this connection, package {ggtrace} exposes the familiar functional programming logic of ggplot with functions that inspect, capture, or modify steps in a ggplot object's execution pipeline, enabling users to learn the internals through trial-and-error.

Talk materials are available at

Session Details


03:20 PM to 03:40 PM

National Harbor 10+11

Watch Video


June Choe profile pic

June Choe

University of Pennsylvania

June is a second year Ph.D. student in linguistics at the University of Pennsylvania, studying various topics in language acquisition and human sentence processing. He uses R extensively for experimental and corpus research, and spends too much time making the perfect figures for his papers. Outside of research, June spends his free time pursuing his hobby in data visualization, reading about its design principles and code-based implementations. June is also passionate about data science education, and his most recent side project tackles the knowledge gap between users and developers of ggplot. June takes breaks from his computer by cooking, ice skating, and hanging out with friends.