Skip to content

gjhanchem/ggplot2

This branch is 1170 commits behind tidyverse/ggplot2:main.

Folders and files

NameName
Last commit message
Last commit date
Nov 2, 2018
Sep 29, 2019
Mar 6, 2019
Mar 6, 2019
May 9, 2018
Jan 19, 2019
Sep 29, 2019
Nov 13, 2018
Jun 11, 2019
Sep 29, 2019
Jun 17, 2019
Jun 11, 2019
Feb 25, 2014
Jan 5, 2019
Jul 24, 2019
Nov 2, 2018
Jun 4, 2019
Sep 29, 2019
Nov 2, 2018
Jan 2, 2018
Sep 15, 2016
Sep 29, 2019
Jan 21, 2018
Sep 29, 2019
Apr 10, 2019
Apr 10, 2019
Jul 1, 2019
Feb 1, 2017
Jul 28, 2016
Aug 9, 2019
Jun 1, 2017

Repository files navigation

ggplot2

Travis Build Status AppVeyor Build Status Coverage Status CRAN_Status_Badge

Overview

ggplot2 is a system for declaratively creating graphics, based on The Grammar of Graphics. You provide the data, tell ggplot2 how to map variables to aesthetics, what graphical primitives to use, and it takes care of the details.

Installation

# The easiest way to get ggplot2 is to install the whole tidyverse:
install.packages("tidyverse")

# Alternatively, install just ggplot2:
install.packages("ggplot2")

# Or the the development version from GitHub:
# install.packages("devtools")
devtools::install_github("tidyverse/ggplot2")

Cheatsheet

Usage

It’s hard to succinctly describe how ggplot2 works because it embodies a deep philosophy of visualisation. However, in most cases you start with ggplot(), supply a dataset and aesthetic mapping (with aes()). You then add on layers (like geom_point() or geom_histogram()), scales (like scale_colour_brewer()), faceting specifications (like facet_wrap()) and coordinate systems (like coord_flip()).

library(ggplot2)

ggplot(mpg, aes(displ, hwy, colour = class)) + 
  geom_point()

Lifecycle

lifecycle

ggplot2 is now over 10 years old and is used by hundreds of thousands of people to make millions of plots. That means, by-and-large, ggplot2 itself changes relatively little. When we do make changes, they will be generally to add new functions or arguments rather than changing the behaviour of existing functions, and if we do make changes to existing behaviour we will do them for compelling reasons.

If you are looking for innovation, look to ggplot2’s rich ecosystem of extensions. See a community maintained list at http://www.ggplot2-exts.org/gallery/.

Learning ggplot2

If you are new to ggplot2 you are better off starting with a systematic introduction, rather than trying to learn from reading individual documentation pages. Currently, there are three good places to start:

  1. The data visualisation and graphics for communication chapters in R for data science. R for data science is designed to give you a comprehensive introduction to the tidyverse, and these two chapters will get you up to speed with the essentials of ggplot2 as quickly as possible.

  2. If you’d like to take an online course, try Data Visualization in R With ggplot2 by Kara Woo.

  3. If you want to dive into making common graphics as quickly as possible, I recommend The R Graphics Cookbook by Winston Chang. It provides a set of recipes to solve common graphics problems.

If you’ve mastered the basics and want to learn more, read ggplot2: Elegant Graphics for Data Analysis. It describes the theoretical underpinnings of ggplot2 and shows you how all the pieces fit together. This book helps you understand the theory that underpins ggplot2, and will help you create new types of graphics specifically tailored to your needs. The book is not available for free, but you can find the complete source for the book at https://github.com/hadley/ggplot2-book.

Getting help

There are two main places to get help with ggplot2:

  1. The RStudio community is a friendly place to ask any questions about ggplot2.

  2. Stack Overflow is a great source of answers to common ggplot2 questions. It is also a great place to get help, once you have created a reproducible example that illustrates your problem.

About

An implementation of the Grammar of Graphics in R

Resources

License

Code of conduct

Citation

Stars

Watchers

Forks

Packages

No packages published

Languages

  • R 100.0%