Skip to content

Instantly share code, notes, and snippets.

@1beb
Created June 14, 2011 20:27
Show Gist options
  • Save 1beb/1025782 to your computer and use it in GitHub Desktop.
Save 1beb/1025782 to your computer and use it in GitHub Desktop.
Part 1: ggplot2 Intro
## Title: ggplot2 Introduction
## Description: This line by line analysis, provides an introduction to ggplot2
## Created by: Brandon Bertelsen: Research Manager, Credo Consulting Inc.
# install.packages("ggplot2")
## Load Library
library(ggplot2)
# load sample data
d <- diamonds
# let's look at what we have
str(diamonds)
# 'data.frame': 53940 obs. of 10 variables:
# $ carat : num 0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
# $ cut : Factor w/ 5 levels "Fair","Good",..: 5 4 2 4 2 3 3 3 1 3 ...
# $ color : Factor w/ 7 levels "D","E","F","G",..: 2 2 2 6 7 7 6 5 2 5 ...
# $ clarity: Factor w/ 8 levels "I1","SI2","SI1",..: 2 3 5 4 2 6 7 3 4 5 ...
# $ depth : num 61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
# $ table : num 55 61 65 58 58 57 57 55 61 61 ...
# $ price : int 326 326 327 334 335 336 336 337 337 338 ...
# $ x : num 3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
# $ y : num 3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
# $ z : num 2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
# Start simple, build up. A histogram of diamond prices
ggplot(d, aes(price)) + geom_histogram()
# Lets try to see a bit more granularity
ggplot(d, aes(price)) + geom_histogram(binwidth=100)
# Look at density instead
ggplot(d, aes(price)) + geom_density()
# See the relationship between carat and price
ggplot(d, aes(price, carat)) + geom_point()
# Label our prices by clarity and look for relationships
ggplot(d, aes(price, carat, label=clarity)) + geom_text()
# Sample our data to get a better understanding of relationship
ggplot(d[sample(rownames(d),1000),], aes(price, carat, label=clarity)) + geom_text()
# Still not really providing a good view, perhaps we should color our data
ggplot(d, aes(price, carat, color=clarity)) + geom_point()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment