SlideShare a Scribd company logo
Introduction to ggplot2
                              Elegant Graphics for Data Analysis
                                      Maik Röder
                                      15.12.2011
                            RUGBCN and Barcelona Code Meetup




vendredi 16 décembre 2011                                          1
Data Analysis Steps
       • Prepare data
        • e.g. using the reshape framework for restructuring
                    data
       • Plot data
        • e.g. using ggplot2 instead of base graphics and
                    lattice
       • Summarize the data and refine the plots
        • Iterative process
vendredi 16 décembre 2011                                      2
ggplot2
                 grammar of graphics




vendredi 16 décembre 2011              3
Grammar
                •       Oxford English Dictionary:

                      •     The fundamental principles or rules of an art or
                            science

                      •     A book presenting these in methodical form.
                            (Now rare; formerly common in the titles of
                            books.)

                •       System of rules underlying a given language

                •       An abstraction which facilitates thinking, reasoning
                        and communicating


vendredi 16 décembre 2011                                                      4
The grammar of graphics
               •      Move beyond named graphics (e.g. “scatterplot”)

                    •       gain insight into the deep structure that underlies
                            statistical graphics

               •      Powerful and flexible system for

                    •       constructing abstract graphs (set of points)
                            mathematically

                    •       Realizing physical representations as graphics by
                            mapping aesthetic attributes (size, colour) to graphs

               •      Lacking openly available implementation

vendredi 16 décembre 2011                                                           5
Specification
               Concise description of components of a graphic

           • DATA - data operations that create variables
                   from datasets. Reshaping using an Algebra with
                   operations
           • TRANS - variable transformations
           • SCALE - scale transformations
           • ELEMENT - graphs and their aesthetic attributes
           • COORD - a coordinate system
           • GUIDE - one or more guides
vendredi 16 décembre 2011                                           6
Birth/Death Rate




         Source: http://www.scalloway.org.uk/popu6.htm



vendredi 16 décembre 2011                                7
Excess birth
                     (vs. death) rates in selected countries




                                                    Source: The grammar of Graphics, p.13
vendredi 16 décembre 2011                                                                   8
Grammar of Graphics
       Specification can be run in GPL implemented in SPSS

              DATA: source("demographics")
              DATA: longitude,
                    latitude = map(source("World"))
              TRANS: bd = max(birth - death, 0)
              COORD: project.mercator()
              ELEMENT: point(position(lon * lat),
                             size(bd),
                             color(color.red))
              ELEMENT: polygon(position(longitude *
              latitude))
                                            Source: The grammar of Graphics, p.13
vendredi 16 décembre 2011                                                           9
Rearrangement of Components
  Grammar of Graphics                          Layered Grammar of
                                               Graphics
                                  Data         Defaults
                                 Trans          Data
                                                Mapping
                               Element         Layer
                                                Data
                                                Mapping
                                                Geom
                                                Stat
                                 Scale          Position
                                Guide          Scale
                                               Coord
                                Coord          Facet
vendredi 16 décembre 2011                                       10
Layered Grammar of Graphics
                  Implementation embedded in R using ggplot2

      w <- world
      d <- demographics
      d <- transform(d,
                     bd = pmax(birth - death, 0))
      p <- ggplot(d, aes(lon, lat))
      p <- p + geom_polygon(data = w)
      p <- p + geom_point(aes(size = bd),
                              colour = "red")
      p <- p + coord_map(projection = "mercator")
      p
vendredi 16 décembre 2011                                      11
ggplot2
                   •        Author: Hadley Wickham

                   •        Open Source implementation of the layered
                            grammar of graphics

                   •        High-level R package for creating publication-
                            quality statistical graphics

                            •   Carefully chosen defaults following basic
                                graphical design rules

                   •        Flexible set of components for creating any type of
                            graphics
vendredi 16 décembre 2011                                                         12
ggplot2 installation
           • In R console:
                   install.packages("ggplot2")
                   library(ggplot2)




vendredi 16 décembre 2011                          13
qplot
                   • Quickly plot something with qplot
                    • for exploring ideas interactively
                   • Same options as plot converted to ggplot2
                            qplot(carat, price,
                                  data=diamonds,
                                  main = "Diamonds",
                                  asp = 1)

vendredi 16 décembre 2011                                        14
vendredi 16 décembre 2011   15
Exploring with qplot
                 First try:

                       qplot(carat, price,
                             data=diamonds)
                 Log transform using functions on the variables:
                            qplot(log(carat),
                                  log(price),
                                  data=diamonds)

vendredi 16 décembre 2011                                          16
vendredi 16 décembre 2011   17
from qplot to ggplot
qplot(carat, price,
      data=diamonds,
      main = "Diamonds",
      asp = 1)

p <- ggplot(diamonds, aes(carat, price))
p <- p + geom_point()
p <- p + opts(title = "Diamonds",
              aspect.ratio = 1)
p
vendredi 16 décembre 2011                          18
Data and mapping

                   • If you need to flexibly restructure and
                            aggregate data beforehand, use Reshape

                            • data is considered an independent concern
                   • Need a mapping of what variables are
                            mapped to what aesthetic
                            • weight => x, height => y, age => size
                            • Mappings are defined in scales
vendredi 16 décembre 2011                                                 19
Statistical Transformations
                            • a stat transforms data
                            • can add new variables to a dataset
                             • that can be used in aesthetic mappings



vendredi 16 décembre 2011                                               20
stat_smooth
          • Fits a smoother to the data
          • Displays a smooth and its standard error
    ggplot(diamonds, aes(carat, price)) +
    geom_point() + geom_smooth()




vendredi 16 décembre 2011                              21
vendredi 16 décembre 2011   22
Geometric Object
                   • Control the type of plot
                   • A geom can only display certain aesthetics




vendredi 16 décembre 2011                                         23
geom_histogram

      • Distribution of carats shown in a histogram

     ggplot(diamonds, aes(carat)) +
     geom_histogram()




vendredi 16 décembre 2011                             24
vendredi 16 décembre 2011   25
Position adjustments
                   • Tweak positioning of geometric objects
                   • Avoid overlaps




vendredi 16 décembre 2011                                     26
position_jitter

         • Avoid overplotting by jittering points
         x <- c(0, 0, 0, 0, 0)
         y <- c(0, 0, 0, 0, 0)
         overplotted <- data.frame(x, y)
         ggplot(overplotted, aes(x,y)) +
         geom_point(position=position_jitter
         (w=0.1, h=0.1))
vendredi 16 décembre 2011                           27
vendredi 16 décembre 2011   28
Scales
                   • Control mapping from data to aesthetic
                            attributes
                   • One scale per aesthetic




vendredi 16 décembre 2011                                     29
scale_x_continuous
                            scale_y_continuous
       x <- c(0, 0, 0, 0, 0)
       y <- c(0, 0, 0, 0, 0)
       overplotted <- data.frame(x, y)
       ggplot(overplotted, aes(x,y)) +
       geom_point(position=position_jitter
       (w=0.1, h=0.1)) +
       scale_x_continuous(limits=c(-1,1)) +
       scale_y_continuous(limits=c(-1,1))

vendredi 16 décembre 2011                        30
vendredi 16 décembre 2011   31
Coordinate System
                   • Maps the position of objects into the plane
                   • Affect all position variables simultaneously
                   • Change appearance of geoms (unlike scales)



vendredi 16 décembre 2011                                           32
coord_map
library("maps")
map <- map("nz", plot=FALSE)[c("x","y")]
m <- data.frame(map)
n <- qplot(x, y, data=m, geom="path")
n
d <- data.frame(c(0), c(0))
n + geom_point(data = d, colour = "red")

vendredi 16 décembre 2011               33
vendredi 16 décembre 2011   34
Faceting
                       • lay out multiple plots on a page
                        • split data into subsets
                        • plot subsets into different panels




vendredi 16 décembre 2011                                      35
Facet Types
          2D grid of panels:       1D ribbon of panels
                                    wrapped into 2D:




vendredi 16 décembre 2011                                36
Faceting

 aesthetics <- aes(carat, ..density..)
 p <- ggplot(diamonds, aesthetics)
 p <- p + geom_histogram(binwidth = 0.2)
 p + facet_grid(clarity ~ cut)




vendredi 16 décembre 2011                  37
vendredi 16 décembre 2011   38
Faceting Formula
                            no faceting      .~ .

        single row multiple columns          .~ a

        single column, multiple rows        b~.

         multiple rows and columns          a~b

                                           .~ a + b
   multiple variables in rows and/or
                                           a + b ~.
                columns
                                          a+b~c+d

vendredi 16 décembre 2011                             39
Scales in Facets
        facet_grid(. ~ cyl, scales="free_x")


                    scales value            free

                            fixed            -

                             free           x, y

                            free_x           x

                            free_y           y
vendredi 16 décembre 2011                          40
Layers
                   • Iterativey update a plot
                    • change a single feature at a time
                   • Think about the high level aspects of the
                            plot in isolation
                   • Instead of choosing a static type of plot,
                            create new types of plots on the fly
                   • Cure against immobility
                    • Developers can easily develop new layers
                              without affecting other layers
vendredi 16 décembre 2011                                         41
Hierarchy of defaults
    Omitted layer                  Default chosen by layer
                  Stat                        Geom
                 Geom                          Stat
                Mapping                    Plot default
                Coord                 Cartesian coordinates
                             Chosen depending on aesthetic and type of
                   Scale
                                             variable
                               Linear scaling for continuous variables
                Position
                                  Integers for categorical variables


vendredi 16 décembre 2011                                                42
Thanks!
                   • Visit the ggplot2 homepage:
                    • http://had.co.nz/ggplot2/
                   • Get the ggplot2 book:
                    • http://amzn.com/0387981403
                   • Get the Grammar of Graphics book from
                            Leland Wilkinson:
                            • http://amzn.com/0387245448
vendredi 16 décembre 2011                                    43

More Related Content

What's hot

Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
Alexandros Karatzoglou
 
R Programming: Introduction To R Packages
R Programming: Introduction To R PackagesR Programming: Introduction To R Packages
R Programming: Introduction To R Packages
Rsquared Academy
 
6. R data structures
6. R data structures6. R data structures
6. R data structures
ExternalEvents
 
Graph Thinking: Why it Matters
Graph Thinking: Why it MattersGraph Thinking: Why it Matters
Graph Thinking: Why it Matters
Neo4j
 
Introduction to R Programming
Introduction to R ProgrammingIntroduction to R Programming
Introduction to R Programming
izahn
 
Data Types and Structures in R
Data Types and Structures in RData Types and Structures in R
Data Types and Structures in R
Rupak Roy
 
Exploratory data analysis in R - Data Science Club
Exploratory data analysis in R - Data Science ClubExploratory data analysis in R - Data Science Club
Exploratory data analysis in R - Data Science Club
Martin Bago
 
Exploratory data analysis with Python
Exploratory data analysis with PythonExploratory data analysis with Python
Exploratory data analysis with Python
Davis David
 
Principal Component Analysis
Principal Component AnalysisPrincipal Component Analysis
Principal Component Analysis
Ricardo Wendell Rodrigues da Silveira
 
R programming
R programmingR programming
R programming
Shantanu Patil
 
Graph Analytics
Graph AnalyticsGraph Analytics
Graph Analytics
Khalid Salama
 
Machine Learning with R
Machine Learning with RMachine Learning with R
Machine Learning with R
Barbara Fusinska
 
R and Visualization: A match made in Heaven
R and Visualization: A match made in HeavenR and Visualization: A match made in Heaven
R and Visualization: A match made in Heaven
Edureka!
 
R Programming Language
R Programming LanguageR Programming Language
R Programming Language
NareshKarela1
 
3.3 hierarchical methods
3.3 hierarchical methods3.3 hierarchical methods
3.3 hierarchical methods
Krish_ver2
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
Kazuki Yoshida
 
Exploratory data analysis
Exploratory data analysisExploratory data analysis
Exploratory data analysis
Vishwas N
 
Applications of graph theory
                      Applications of graph theory                      Applications of graph theory
Applications of graph theory
NilaNila16
 
Data visualization
Data visualizationData visualization
Data visualization
Moushmi Dasgupta
 
Pca ppt
Pca pptPca ppt

What's hot (20)

Machine Learning in R
Machine Learning in RMachine Learning in R
Machine Learning in R
 
R Programming: Introduction To R Packages
R Programming: Introduction To R PackagesR Programming: Introduction To R Packages
R Programming: Introduction To R Packages
 
6. R data structures
6. R data structures6. R data structures
6. R data structures
 
Graph Thinking: Why it Matters
Graph Thinking: Why it MattersGraph Thinking: Why it Matters
Graph Thinking: Why it Matters
 
Introduction to R Programming
Introduction to R ProgrammingIntroduction to R Programming
Introduction to R Programming
 
Data Types and Structures in R
Data Types and Structures in RData Types and Structures in R
Data Types and Structures in R
 
Exploratory data analysis in R - Data Science Club
Exploratory data analysis in R - Data Science ClubExploratory data analysis in R - Data Science Club
Exploratory data analysis in R - Data Science Club
 
Exploratory data analysis with Python
Exploratory data analysis with PythonExploratory data analysis with Python
Exploratory data analysis with Python
 
Principal Component Analysis
Principal Component AnalysisPrincipal Component Analysis
Principal Component Analysis
 
R programming
R programmingR programming
R programming
 
Graph Analytics
Graph AnalyticsGraph Analytics
Graph Analytics
 
Machine Learning with R
Machine Learning with RMachine Learning with R
Machine Learning with R
 
R and Visualization: A match made in Heaven
R and Visualization: A match made in HeavenR and Visualization: A match made in Heaven
R and Visualization: A match made in Heaven
 
R Programming Language
R Programming LanguageR Programming Language
R Programming Language
 
3.3 hierarchical methods
3.3 hierarchical methods3.3 hierarchical methods
3.3 hierarchical methods
 
Introduction to R
Introduction to RIntroduction to R
Introduction to R
 
Exploratory data analysis
Exploratory data analysisExploratory data analysis
Exploratory data analysis
 
Applications of graph theory
                      Applications of graph theory                      Applications of graph theory
Applications of graph theory
 
Data visualization
Data visualizationData visualization
Data visualization
 
Pca ppt
Pca pptPca ppt
Pca ppt
 

Viewers also liked

[Week10] R graphics
[Week10] R graphics[Week10] R graphics
[Week10] R graphics
neuroassociates
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet
neuroassociates
 
Chương 2 phương tiện thanh toán quốc tế
Chương 2 phương tiện thanh toán quốc tếChương 2 phương tiện thanh toán quốc tế
Chương 2 phương tiện thanh toán quốc tế
Nguyễn Ngọc Phan Văn
 
Commodity tips
Commodity tipsCommodity tips
Polyglot Programming @ CONFESS
Polyglot Programming @ CONFESSPolyglot Programming @ CONFESS
Polyglot Programming @ CONFESS
Andres Almiray
 
Online Video In China Is Big!
Online Video In China Is Big!Online Video In China Is Big!
Online Video In China Is Big!
Richard Matsumoto
 
мирф 8 1880 ocr
мирф 8 1880 ocrмирф 8 1880 ocr
мирф 8 1880 ocr
Василий Сергеев
 
Private guitar teacher los angeles
Private guitar teacher los angelesPrivate guitar teacher los angeles
Private guitar teacher los angeles
ZOTZinMusic
 
MidiMobilités Actualités #18 – Avril 2015
MidiMobilités Actualités #18 – Avril 2015MidiMobilités Actualités #18 – Avril 2015
MidiMobilités Actualités #18 – Avril 2015
MidiMobilités
 
How to Manage Your Social Media like a Boss
How to Manage Your Social Media like a BossHow to Manage Your Social Media like a Boss
How to Manage Your Social Media like a Boss
Erica McGillivray
 
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
Lever Inc.
 
Responsive design lunch and learn
Responsive design lunch and learnResponsive design lunch and learn
Responsive design lunch and learn
Ricardo Queiroz
 

Viewers also liked (13)

[Week10] R graphics
[Week10] R graphics[Week10] R graphics
[Week10] R graphics
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet
 
Chương 2 phương tiện thanh toán quốc tế
Chương 2 phương tiện thanh toán quốc tếChương 2 phương tiện thanh toán quốc tế
Chương 2 phương tiện thanh toán quốc tế
 
Commodity tips
Commodity tipsCommodity tips
Commodity tips
 
Polyglot Programming @ CONFESS
Polyglot Programming @ CONFESSPolyglot Programming @ CONFESS
Polyglot Programming @ CONFESS
 
Online Video In China Is Big!
Online Video In China Is Big!Online Video In China Is Big!
Online Video In China Is Big!
 
мирф 8 1880 ocr
мирф 8 1880 ocrмирф 8 1880 ocr
мирф 8 1880 ocr
 
Private guitar teacher los angeles
Private guitar teacher los angelesPrivate guitar teacher los angeles
Private guitar teacher los angeles
 
MidiMobilités Actualités #18 – Avril 2015
MidiMobilités Actualités #18 – Avril 2015MidiMobilités Actualités #18 – Avril 2015
MidiMobilités Actualités #18 – Avril 2015
 
How to Manage Your Social Media like a Boss
How to Manage Your Social Media like a BossHow to Manage Your Social Media like a Boss
How to Manage Your Social Media like a Boss
 
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
Hiring for Scale; 13 Hacks in 30 Minutes (Startup Grind Europe presentation)
 
Responsive design lunch and learn
Responsive design lunch and learnResponsive design lunch and learn
Responsive design lunch and learn
 
Bibat museoan
Bibat museoan Bibat museoan
Bibat museoan
 

Similar to Introduction to ggplot2

Graph Theory and Databases
Graph Theory and DatabasesGraph Theory and Databases
Graph Theory and Databases
Pere Urbón-Bayes
 
Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2
yannabraham
 
Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...
bhargavi804095
 
Geospatial Options in Apache Spark
Geospatial Options in Apache SparkGeospatial Options in Apache Spark
Geospatial Options in Apache Spark
Databricks
 
From Data to Knowledge thru Grailog Visualization
From Data to Knowledge thru Grailog VisualizationFrom Data to Knowledge thru Grailog Visualization
From Data to Knowledge thru Grailog Visualization
giurca
 
Spatial Data Science with R
Spatial Data Science with RSpatial Data Science with R
Spatial Data Science with R
amsantac
 
Slides 111017220255-phpapp01
Slides 111017220255-phpapp01Slides 111017220255-phpapp01
Slides 111017220255-phpapp01
Ken Mwai
 
Python for Financial Data Analysis with pandas
Python for Financial Data Analysis with pandasPython for Financial Data Analysis with pandas
Python for Financial Data Analysis with pandas
Wes McKinney
 
Clustering: A Survey
Clustering: A SurveyClustering: A Survey
Clustering: A Survey
Raffaele Capaldo
 
Comparing Vocabularies for Representing Geographical Features and Their Geometry
Comparing Vocabularies for Representing Geographical Features and Their GeometryComparing Vocabularies for Representing Geographical Features and Their Geometry
Comparing Vocabularies for Representing Geographical Features and Their Geometry
Ghislain Atemezing
 
Introduction to Graph neural networks @ Vienna Deep Learning meetup
Introduction to Graph neural networks @  Vienna Deep Learning meetupIntroduction to Graph neural networks @  Vienna Deep Learning meetup
Introduction to Graph neural networks @ Vienna Deep Learning meetup
Liad Magen
 
Exploratory Analysis Part1 Coursera DataScience Specialisation
Exploratory Analysis Part1 Coursera DataScience SpecialisationExploratory Analysis Part1 Coursera DataScience Specialisation
Exploratory Analysis Part1 Coursera DataScience Specialisation
Wesley Goi
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
MLconf
 
Geoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSMGeoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSM
Craig Taverner
 
Bcn On Rails May2010 On Graph Databases
Bcn On Rails May2010 On Graph DatabasesBcn On Rails May2010 On Graph Databases
Bcn On Rails May2010 On Graph Databases
Pere Urbón-Bayes
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
Reynold Xin
 
Hanna bosc2010
Hanna bosc2010Hanna bosc2010
Hanna bosc2010
BOSC 2010
 
Map-Side Merge Joins for Scalable SPARQL BGP Processing
Map-Side Merge Joins for Scalable SPARQL BGP ProcessingMap-Side Merge Joins for Scalable SPARQL BGP Processing
Map-Side Merge Joins for Scalable SPARQL BGP Processing
Alexander Schätzle
 
N20190530
N20190530N20190530
N20190530
TMU, Japan
 
01 intro-bps-2011
01 intro-bps-201101 intro-bps-2011
01 intro-bps-2011
mistercteam
 

Similar to Introduction to ggplot2 (20)

Graph Theory and Databases
Graph Theory and DatabasesGraph Theory and Databases
Graph Theory and Databases
 
Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2Elegant Graphics for Data Analysis with ggplot2
Elegant Graphics for Data Analysis with ggplot2
 
Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...Graphs in data structures are non-linear data structures made up of a finite ...
Graphs in data structures are non-linear data structures made up of a finite ...
 
Geospatial Options in Apache Spark
Geospatial Options in Apache SparkGeospatial Options in Apache Spark
Geospatial Options in Apache Spark
 
From Data to Knowledge thru Grailog Visualization
From Data to Knowledge thru Grailog VisualizationFrom Data to Knowledge thru Grailog Visualization
From Data to Knowledge thru Grailog Visualization
 
Spatial Data Science with R
Spatial Data Science with RSpatial Data Science with R
Spatial Data Science with R
 
Slides 111017220255-phpapp01
Slides 111017220255-phpapp01Slides 111017220255-phpapp01
Slides 111017220255-phpapp01
 
Python for Financial Data Analysis with pandas
Python for Financial Data Analysis with pandasPython for Financial Data Analysis with pandas
Python for Financial Data Analysis with pandas
 
Clustering: A Survey
Clustering: A SurveyClustering: A Survey
Clustering: A Survey
 
Comparing Vocabularies for Representing Geographical Features and Their Geometry
Comparing Vocabularies for Representing Geographical Features and Their GeometryComparing Vocabularies for Representing Geographical Features and Their Geometry
Comparing Vocabularies for Representing Geographical Features and Their Geometry
 
Introduction to Graph neural networks @ Vienna Deep Learning meetup
Introduction to Graph neural networks @  Vienna Deep Learning meetupIntroduction to Graph neural networks @  Vienna Deep Learning meetup
Introduction to Graph neural networks @ Vienna Deep Learning meetup
 
Exploratory Analysis Part1 Coursera DataScience Specialisation
Exploratory Analysis Part1 Coursera DataScience SpecialisationExploratory Analysis Part1 Coursera DataScience Specialisation
Exploratory Analysis Part1 Coursera DataScience Specialisation
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
 
Geoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSMGeoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSM
 
Bcn On Rails May2010 On Graph Databases
Bcn On Rails May2010 On Graph DatabasesBcn On Rails May2010 On Graph Databases
Bcn On Rails May2010 On Graph Databases
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
 
Hanna bosc2010
Hanna bosc2010Hanna bosc2010
Hanna bosc2010
 
Map-Side Merge Joins for Scalable SPARQL BGP Processing
Map-Side Merge Joins for Scalable SPARQL BGP ProcessingMap-Side Merge Joins for Scalable SPARQL BGP Processing
Map-Side Merge Joins for Scalable SPARQL BGP Processing
 
N20190530
N20190530N20190530
N20190530
 
01 intro-bps-2011
01 intro-bps-201101 intro-bps-2011
01 intro-bps-2011
 

More from maikroeder

Google charts
Google chartsGoogle charts
Google charts
maikroeder
 
Encode RNA Dashboard
Encode RNA DashboardEncode RNA Dashboard
Encode RNA Dashboard
maikroeder
 
Pandas
PandasPandas
Pandas
maikroeder
 
Getting started with pandas
Getting started with pandasGetting started with pandas
Getting started with pandas
maikroeder
 
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
maikroeder
 
Cms - Content Management System Utilities for Django
Cms - Content Management System Utilities for DjangoCms - Content Management System Utilities for Django
Cms - Content Management System Utilities for Django
maikroeder
 
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik RöderPlone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
maikroeder
 

More from maikroeder (7)

Google charts
Google chartsGoogle charts
Google charts
 
Encode RNA Dashboard
Encode RNA DashboardEncode RNA Dashboard
Encode RNA Dashboard
 
Pandas
PandasPandas
Pandas
 
Getting started with pandas
Getting started with pandasGetting started with pandas
Getting started with pandas
 
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
Repoze Bfg - presented by Rok Garbas at the Python Barcelona Meetup October 2...
 
Cms - Content Management System Utilities for Django
Cms - Content Management System Utilities for DjangoCms - Content Management System Utilities for Django
Cms - Content Management System Utilities for Django
 
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik RöderPlone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
Plone Conference 2007: Acceptance Testing In Plone Using Funittest - Maik Röder
 

Recently uploaded

定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样
qo1as76n
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
Techno Merch
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
talaatahm
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
PabloMartelLpez
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
Decomart Studio
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
Knight Moves
 
International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
Kyungeun Sung
 
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
qo1as76n
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
lunaemel03
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
Virtual Real Design
 
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
k7nm6tk
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
amrsoftec1
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
eloprejohn333
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
kecekev
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
GOWSIKRAJA PALANISAMY
 
Practical eLearning Makeovers for Everyone
Practical eLearning Makeovers for EveryonePractical eLearning Makeovers for Everyone
Practical eLearning Makeovers for Everyone
Bianca Woods
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
GOWSIKRAJA PALANISAMY
 
Game Concept Presentation for Ukrainian Mythology Based Game With Designs
Game Concept Presentation for Ukrainian Mythology Based Game With DesignsGame Concept Presentation for Ukrainian Mythology Based Game With Designs
Game Concept Presentation for Ukrainian Mythology Based Game With Designs
184804
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
Chiara Aliotta
 
Timeless Principles of Good Design
Timeless Principles of Good DesignTimeless Principles of Good Design
Timeless Principles of Good Design
Carolina de Bartolo
 

Recently uploaded (20)

定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样定制美国西雅图城市大学毕业证学历证书原版一模一样
定制美国西雅图城市大学毕业证学历证书原版一模一样
 
Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.Technoblade The Legacy of a Minecraft Legend.
Technoblade The Legacy of a Minecraft Legend.
 
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdfAHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
AHMED TALAAT ARCHITECTURE PORTFOLIO .pdf
 
CocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdfCocaCola_Brand_equity_package_2012__.pdf
CocaCola_Brand_equity_package_2012__.pdf
 
Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1Top Interior Designers in Bangalore.pdf1
Top Interior Designers in Bangalore.pdf1
 
ARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdfARENA - Young adults in the workplace (Knight Moves).pdf
ARENA - Young adults in the workplace (Knight Moves).pdf
 
International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4International Upcycling Research Network advisory board meeting 4
International Upcycling Research Network advisory board meeting 4
 
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
哪里办理美国中央华盛顿大学毕业证双学位证书原版一模一样
 
Divertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8djDivertidamente SLIDE.pptxufururururuhrurid8dj
Divertidamente SLIDE.pptxufururururuhrurid8dj
 
Graphic Design Tools and Software .pptx
Graphic Design Tools and Software   .pptxGraphic Design Tools and Software   .pptx
Graphic Design Tools and Software .pptx
 
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
一比一原版(LSBU毕业证书)伦敦南岸大学毕业证如何办理
 
Revolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in IndiaRevolutionizing the Digital Landscape: Web Development Companies in India
Revolutionizing the Digital Landscape: Web Development Companies in India
 
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdfSECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
SECURING BUILDING PERMIT CITY OF CALOOCAN.pdf
 
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
一比一原版(UW毕业证)西雅图华盛顿大学毕业证如何办理
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
 
Practical eLearning Makeovers for Everyone
Practical eLearning Makeovers for EveryonePractical eLearning Makeovers for Everyone
Practical eLearning Makeovers for Everyone
 
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptxUNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
UNIT IV-VISUAL STYLE AND MOBILE INTERFACES.pptx
 
Game Concept Presentation for Ukrainian Mythology Based Game With Designs
Game Concept Presentation for Ukrainian Mythology Based Game With DesignsGame Concept Presentation for Ukrainian Mythology Based Game With Designs
Game Concept Presentation for Ukrainian Mythology Based Game With Designs
 
Storytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design ProcessStorytelling For The Web: Integrate Storytelling in your Design Process
Storytelling For The Web: Integrate Storytelling in your Design Process
 
Timeless Principles of Good Design
Timeless Principles of Good DesignTimeless Principles of Good Design
Timeless Principles of Good Design
 

Introduction to ggplot2

  • 1. Introduction to ggplot2 Elegant Graphics for Data Analysis Maik Röder 15.12.2011 RUGBCN and Barcelona Code Meetup vendredi 16 décembre 2011 1
  • 2. Data Analysis Steps • Prepare data • e.g. using the reshape framework for restructuring data • Plot data • e.g. using ggplot2 instead of base graphics and lattice • Summarize the data and refine the plots • Iterative process vendredi 16 décembre 2011 2
  • 3. ggplot2 grammar of graphics vendredi 16 décembre 2011 3
  • 4. Grammar • Oxford English Dictionary: • The fundamental principles or rules of an art or science • A book presenting these in methodical form. (Now rare; formerly common in the titles of books.) • System of rules underlying a given language • An abstraction which facilitates thinking, reasoning and communicating vendredi 16 décembre 2011 4
  • 5. The grammar of graphics • Move beyond named graphics (e.g. “scatterplot”) • gain insight into the deep structure that underlies statistical graphics • Powerful and flexible system for • constructing abstract graphs (set of points) mathematically • Realizing physical representations as graphics by mapping aesthetic attributes (size, colour) to graphs • Lacking openly available implementation vendredi 16 décembre 2011 5
  • 6. Specification Concise description of components of a graphic • DATA - data operations that create variables from datasets. Reshaping using an Algebra with operations • TRANS - variable transformations • SCALE - scale transformations • ELEMENT - graphs and their aesthetic attributes • COORD - a coordinate system • GUIDE - one or more guides vendredi 16 décembre 2011 6
  • 7. Birth/Death Rate Source: http://www.scalloway.org.uk/popu6.htm vendredi 16 décembre 2011 7
  • 8. Excess birth (vs. death) rates in selected countries Source: The grammar of Graphics, p.13 vendredi 16 décembre 2011 8
  • 9. Grammar of Graphics Specification can be run in GPL implemented in SPSS DATA: source("demographics") DATA: longitude, latitude = map(source("World")) TRANS: bd = max(birth - death, 0) COORD: project.mercator() ELEMENT: point(position(lon * lat), size(bd), color(color.red)) ELEMENT: polygon(position(longitude * latitude)) Source: The grammar of Graphics, p.13 vendredi 16 décembre 2011 9
  • 10. Rearrangement of Components Grammar of Graphics Layered Grammar of Graphics Data Defaults Trans Data Mapping Element Layer Data Mapping Geom Stat Scale Position Guide Scale Coord Coord Facet vendredi 16 décembre 2011 10
  • 11. Layered Grammar of Graphics Implementation embedded in R using ggplot2 w <- world d <- demographics d <- transform(d, bd = pmax(birth - death, 0)) p <- ggplot(d, aes(lon, lat)) p <- p + geom_polygon(data = w) p <- p + geom_point(aes(size = bd), colour = "red") p <- p + coord_map(projection = "mercator") p vendredi 16 décembre 2011 11
  • 12. ggplot2 • Author: Hadley Wickham • Open Source implementation of the layered grammar of graphics • High-level R package for creating publication- quality statistical graphics • Carefully chosen defaults following basic graphical design rules • Flexible set of components for creating any type of graphics vendredi 16 décembre 2011 12
  • 13. ggplot2 installation • In R console: install.packages("ggplot2") library(ggplot2) vendredi 16 décembre 2011 13
  • 14. qplot • Quickly plot something with qplot • for exploring ideas interactively • Same options as plot converted to ggplot2 qplot(carat, price, data=diamonds, main = "Diamonds", asp = 1) vendredi 16 décembre 2011 14
  • 16. Exploring with qplot First try: qplot(carat, price, data=diamonds) Log transform using functions on the variables: qplot(log(carat), log(price), data=diamonds) vendredi 16 décembre 2011 16
  • 18. from qplot to ggplot qplot(carat, price, data=diamonds, main = "Diamonds", asp = 1) p <- ggplot(diamonds, aes(carat, price)) p <- p + geom_point() p <- p + opts(title = "Diamonds", aspect.ratio = 1) p vendredi 16 décembre 2011 18
  • 19. Data and mapping • If you need to flexibly restructure and aggregate data beforehand, use Reshape • data is considered an independent concern • Need a mapping of what variables are mapped to what aesthetic • weight => x, height => y, age => size • Mappings are defined in scales vendredi 16 décembre 2011 19
  • 20. Statistical Transformations • a stat transforms data • can add new variables to a dataset • that can be used in aesthetic mappings vendredi 16 décembre 2011 20
  • 21. stat_smooth • Fits a smoother to the data • Displays a smooth and its standard error ggplot(diamonds, aes(carat, price)) + geom_point() + geom_smooth() vendredi 16 décembre 2011 21
  • 23. Geometric Object • Control the type of plot • A geom can only display certain aesthetics vendredi 16 décembre 2011 23
  • 24. geom_histogram • Distribution of carats shown in a histogram ggplot(diamonds, aes(carat)) + geom_histogram() vendredi 16 décembre 2011 24
  • 26. Position adjustments • Tweak positioning of geometric objects • Avoid overlaps vendredi 16 décembre 2011 26
  • 27. position_jitter • Avoid overplotting by jittering points x <- c(0, 0, 0, 0, 0) y <- c(0, 0, 0, 0, 0) overplotted <- data.frame(x, y) ggplot(overplotted, aes(x,y)) + geom_point(position=position_jitter (w=0.1, h=0.1)) vendredi 16 décembre 2011 27
  • 29. Scales • Control mapping from data to aesthetic attributes • One scale per aesthetic vendredi 16 décembre 2011 29
  • 30. scale_x_continuous scale_y_continuous x <- c(0, 0, 0, 0, 0) y <- c(0, 0, 0, 0, 0) overplotted <- data.frame(x, y) ggplot(overplotted, aes(x,y)) + geom_point(position=position_jitter (w=0.1, h=0.1)) + scale_x_continuous(limits=c(-1,1)) + scale_y_continuous(limits=c(-1,1)) vendredi 16 décembre 2011 30
  • 32. Coordinate System • Maps the position of objects into the plane • Affect all position variables simultaneously • Change appearance of geoms (unlike scales) vendredi 16 décembre 2011 32
  • 33. coord_map library("maps") map <- map("nz", plot=FALSE)[c("x","y")] m <- data.frame(map) n <- qplot(x, y, data=m, geom="path") n d <- data.frame(c(0), c(0)) n + geom_point(data = d, colour = "red") vendredi 16 décembre 2011 33
  • 35. Faceting • lay out multiple plots on a page • split data into subsets • plot subsets into different panels vendredi 16 décembre 2011 35
  • 36. Facet Types 2D grid of panels: 1D ribbon of panels wrapped into 2D: vendredi 16 décembre 2011 36
  • 37. Faceting aesthetics <- aes(carat, ..density..) p <- ggplot(diamonds, aesthetics) p <- p + geom_histogram(binwidth = 0.2) p + facet_grid(clarity ~ cut) vendredi 16 décembre 2011 37
  • 39. Faceting Formula no faceting .~ . single row multiple columns .~ a single column, multiple rows b~. multiple rows and columns a~b .~ a + b multiple variables in rows and/or a + b ~. columns a+b~c+d vendredi 16 décembre 2011 39
  • 40. Scales in Facets facet_grid(. ~ cyl, scales="free_x") scales value free fixed - free x, y free_x x free_y y vendredi 16 décembre 2011 40
  • 41. Layers • Iterativey update a plot • change a single feature at a time • Think about the high level aspects of the plot in isolation • Instead of choosing a static type of plot, create new types of plots on the fly • Cure against immobility • Developers can easily develop new layers without affecting other layers vendredi 16 décembre 2011 41
  • 42. Hierarchy of defaults Omitted layer Default chosen by layer Stat Geom Geom Stat Mapping Plot default Coord Cartesian coordinates Chosen depending on aesthetic and type of Scale variable Linear scaling for continuous variables Position Integers for categorical variables vendredi 16 décembre 2011 42
  • 43. Thanks! • Visit the ggplot2 homepage: • http://had.co.nz/ggplot2/ • Get the ggplot2 book: • http://amzn.com/0387981403 • Get the Grammar of Graphics book from Leland Wilkinson: • http://amzn.com/0387245448 vendredi 16 décembre 2011 43