Skip to content

Latest commit

 

History

History
55 lines (51 loc) · 2.38 KB

cracking-open-ggplot-internals-ggtrace.md

File metadata and controls

55 lines (51 loc) · 2.38 KB
talk_id talk_slug talk_type talk_tags session_slug talk_title talk_title_short talk_materials_url speakers
22100
cracking-open-ggplot-internals-ggtrace
regular
programming
tool
visualisation
advanced-r
Cracking open ggplot internals with {ggtrace}
Cracking open ggplot internals with {ggtrace}
name affiliation url username photo bio
June Choe
University of Pennsylvania
junechoe
/assets/img/2022Conf/_talks/22100_june-choe.jpg
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.

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.