GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt...
Transcript of GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt...
![Page 1: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/1.jpg)
GETTING STARTED
![Page 2: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/2.jpg)
WE WANT TO DRAW GOOD
DATA GRAPHICSREPRODUCIBLY
![Page 3: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/3.jpg)
Abstraction in SoftwareLess MoreEasy things are awkward
Hard things are straightforward
Really hard things are doable
Easy things are trivial
Hard things are really awkward
Really hard things are impossible
ExcelD3 StataGrid
ggplot
![Page 4: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/4.jpg)
Two ways to use R and ggplot
![Page 5: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/5.jpg)
1. Do Everything in R
Raw Data
Read in, Clean & Analyze
ggplot Figures
![Page 6: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/6.jpg)
2. Just use ggplotTidy
resultsggplot
FiguresStata,
SAS, etc
(Read in, likely with some filtering/transformation)
![Page 7: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/7.jpg)
THE RIGHTFRAME OF MIND
![Page 8: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/8.jpg)
TYPE OUT YOURCODE BY HAND
![Page 9: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/9.jpg)
RSTUDIO
![Page 10: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/10.jpg)
![Page 11: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/11.jpg)
![Page 12: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/12.jpg)
ORGANIZE YOUR PROJECTS
![Page 13: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/13.jpg)
![Page 14: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/14.jpg)
![Page 15: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/15.jpg)
![Page 16: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/16.jpg)
Use RMarkdownTO REPRODUCE
YOUR OWN WORK
![Page 17: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/17.jpg)
This is what we want to end up
with: nicely formatted text,
plots, and tables.
1. Lorem IpsumLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
![Page 18: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/18.jpg)
In a Literate Programming
approach to documents,
chunks of code are processed
and replaced with their output
library(ggplot2) tea <- rnorm(100) biscuits <- tea + rnorm(100, 0, 1.3) data <- data.frame(tea, biscuits) p <- ggplot(data, aes(x = tea, y = biscuits)) + geom_point() + geom_smooth(method = "lm") + labs(x = "Tea", y = "Biscuits") + theme_bw() print(p)
# Lorem IpsumLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do *eiusmod tempor* incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
![Page 19: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/19.jpg)
In a Literate Programming
approach to documents,
chunks of code are processed
and replaced with their output
1. Lorem IpsumLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
![Page 20: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/20.jpg)
An Rmd document lets you keep your code and notes
together in plain text
And produce good-looking output in a range of formats
![Page 21: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/21.jpg)
An Rmd document lets you keep your code and notes
together in plain text
And produce good-looking output in a range of formats
knit in R
notes.Rmd# ReportWe can see this *relationship*in a scatterplot.
As you can see, this plot looks pretty nice.
ReportWe can see this relationshipin a scatterplot.
As you can see, this plot looks pretty nice.
x
y
notes.html
```{r my-code}p !" ggplot(data, mapping)p + geom_point()
```
![Page 22: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/22.jpg)
An Rmd document lets you keep your code and notes
together in plain text
And produce good-looking output in a range of formats
knit in R
notes.Rmd# ReportWe can see this *relationship*in a scatterplot.
As you can see, this plot looks pretty nice.
ReportWe can see this relationshipin a scatterplot.
As you can see, this plot looks pretty nice.
x
y
notes.docx
```{r my-code}p !" ggplot(data, mapping)p + geom_point()
```
![Page 23: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/23.jpg)
Markdown puts formatting instructions in plain-text documents
# Header
Plain text*italics***bold**`verbatim`
Footnote.[^1][^1]: The footnote.
1. List2. List- Bullet 1- Bullet 2
!" Subhead
Markdown OutputHeader
Plain textitalicsboldverbatim
Footnote.The footnote.
1. List2. List° Bullet 1° Bullet 2
Subhead
1
1
A Markdown Processor turns the marked-up plain
text into actually formatted output in HTML, PDF,
DOCX or other file types.
![Page 24: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/24.jpg)
Header section provides metadata and sets options
Code chunk
Text with Markdown formatting
In RStudio, code chunks can be "played" one at a time
Chunks are replaced by their output when the document is made
Code chunks can have their own names and options
![Page 25: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/25.jpg)
RStudio will do all the work for you
when it comes to processing your document—i.e.,
getting it from plain-text Rmd to
HTML, Word, or PDF.
1. Lorem IpsumLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
![Page 26: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/26.jpg)
GETTING ORIENTED
![Page 27: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/27.jpg)
library(tidyverse)
Loading tidyverse: ggplot2 Loading tidyverse: tibble Loading tidyverse: tidyr Loading tidyverse: readr Loading tidyverse: purrr Loading tidyverse: dplyr
The TidyverseDraw graphsNicer data tablesTidy your dataGet data into RCool functional programming stuffAction verbs for manipulating data
library(socviz)
Course-Specific Library
![Page 28: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/28.jpg)
CODE YOU CAN TYPE AND RUN## Inside chunks of code, lines beginning with ## the hash character are comments my_numbers <- c(1, 1, 4, 1, 1, 4, 1)
my_numbers
## [1] 1 1 4 1 1 4 1
OUTPUT
What R Looks Like
![Page 29: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/29.jpg)
FOUR THINGS
TO KNOW ABOUT R
![Page 30: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/30.jpg)
1: Everything has a Name
FALSE TRUE Inf
for if break
function
Some names are forbidden
my_numbersdatap
![Page 31: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/31.jpg)
2. Everything is an Object
my_numbers <- c(1, 2, 3, 1, 3, 5, 25)
letters## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" [20] "t" "u" "v" "w" "x" "y" "z"
You create objects by assigning a thing to a name
named thing "gets" this stuff
![Page 32: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/32.jpg)
my_numbers <- c(1, 2, 3, 1, 3, 5, 25)
You create objects by assigning a thing to a name
The assignment operator performs the action of creating objects. Use the keyboard shortcut to type it:
option - Macalt - Windows
![Page 33: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/33.jpg)
3. You do things using functions and operators
my_numbers <- c(1, 2, 3, 1, 3, 5, 25)
named thing "gets" this stuff
c() is a function that takes comma-separated numbers or strings and joins them together into a vector
![Page 34: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/34.jpg)
take inputs, perform actions, produce outputs
mean()
Functions have parentheses at the end of their name. This is where the inputs, or arguments go.
mean(x = my_numbers)
Named argument. These names are internal to functions.
"Input is this object. Calculate the mean of it."
Functions
![Page 35: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/35.jpg)
mean(my_numbers)
If you just write the name of the input, R assigns it to the function’s arguments in the order given.
take inputs, perform actions, produce outputsFunctions
![Page 36: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/36.jpg)
You can assign a function’s output to a named object
my_summary <- summary(my_numbers)
my_sd <- sd(my_numbers)
my_summary
my_sd
![Page 37: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/37.jpg)
Objects you create exist until you overwrite or delete them
rm(my_numbers)
my_numbers
my_numbers <- c(1, 2, 3, 1, 3, 5, 25)
![Page 38: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/38.jpg)
Objects are of different classes
class(my_numbers)
numeric
character
factor
Vectorsmatrix
data.frame
tibble
Arrayslm
glm
Models
![Page 39: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/39.jpg)
Things to try on Objects class(my_numbers)table(my_numbers)
x <- c(my_numbers, 5)
mean(c(my_numbers, my_numbers))
Notice that these are functionsHow do x and
y differ?y <- c(my_numbers, "hello")
Functions can be nested, and will be evaluated from the
inside out.
![Page 40: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/40.jpg)
Some operators
+, -, *, /, ^ Arithmetic
<- Assignment ("gets")=or
&, &&, |, ||, ! Logical
%*%, %in%, %>% Special
<, >, <=, >=, ==, != Relational
![Page 41: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/41.jpg)
The pipe operatormean(my_numbers)
my_numbers %>% mean()
This will be very convenient later on
round(mean(my_numbers))
my_numbers %>% mean() %>% round()
"and then"%>%
![Page 42: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/42.jpg)
R will be FrustratingWe’re going to be adding a lot of objects together.
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point()
"+" goes here
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + geom_point()
not here
![Page 43: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/43.jpg)
LET’S GO
![Page 44: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/44.jpg)
library(gapminder) gapminder# A tibble: 1,704 x 6 country continent year lifeExp pop gdpPercap <fctr> <fctr> <int> <dbl> <int> <dbl> 1 Afghanistan Asia 1952 28.801 8425333 779.4453 2 Afghanistan Asia 1957 30.332 9240934 820.8530 3 Afghanistan Asia 1962 31.997 10267083 853.1007 4 Afghanistan Asia 1967 34.020 11537966 836.1971 5 Afghanistan Asia 1972 36.088 13079460 739.9811 6 Afghanistan Asia 1977 38.438 14880372 786.1134 7 Afghanistan Asia 1982 39.854 12881816 978.0114 8 Afghanistan Asia 1987 40.822 13867957 852.3959 9 Afghanistan Asia 1992 41.674 16317921 649.3414 10 Afghanistan Asia 1997 41.763 22227415 635.3414 # ... with 1,694 more rows
![Page 45: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/45.jpg)
p + geom_point()
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp))
p
Named thing gets …
… the output of this function …
… using these arguments
Objects created by ggplot() are unusual in that you can add things to them, and they will work as though you wrote all the code at once.
![Page 46: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/46.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp))
p + geom_point()
![Page 47: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/47.jpg)
40
60
80
0 30000 60000 90000gdpPercap
lifeExp
![Page 48: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/48.jpg)
Make Some
Graphs
![Page 49: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/49.jpg)
ggplot wants you
to feed it TIDY DATA
![Page 50: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/50.jpg)
gdp lifexp pop continent
340 65 31 Euro
227 51 200 Amer
909 81 80 Euro
126 40 20 Asia
![Page 51: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/51.jpg)
![Page 52: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/52.jpg)
![Page 53: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/53.jpg)
![Page 54: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/54.jpg)
![Page 55: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/55.jpg)
![Page 56: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/56.jpg)
country year cases population 1 Afghanistan 1999 745 19987071 2 Afghanistan 2000 2666 20595360 3 Brazil 1999 37737 172006362 4 Brazil 2000 80488 174504898 5 China 1999 212258 1272915272 6 China 2000 213766 1280428583
![Page 57: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/57.jpg)
country year key value 1 Afghanistan 1999 cases 745 2 Afghanistan 1999 population 19987071 3 Afghanistan 2000 cases 2666 4 Afghanistan 2000 population 20595360 5 Brazil 1999 cases 37737 6 Brazil 1999 population 172006362 7 Brazil 2000 cases 80488 8 Brazil 2000 population 174504898 9 China 1999 cases 212258 10 China 1999 population 1272915272 11 China 2000 cases 213766 12 China 2000 population 1280428583
![Page 58: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/58.jpg)
country year key value 1 Afghanistan 1999 cases 745 2 Afghanistan 1999 population 19987071 3 Afghanistan 2000 cases 2666 4 Afghanistan 2000 population 20595360 5 Brazil 1999 cases 37737 6 Brazil 1999 population 172006362 7 Brazil 2000 cases 80488 8 Brazil 2000 population 174504898 9 China 1999 cases 212258 10 China 1999 population 1272915272 11 China 2000 cases 213766 12 China 2000 population 1280428583
![Page 59: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/59.jpg)
country year rate 1 Afghanistan 1999 745/19987071 2 Afghanistan 2000 2666/20595360 3 Brazil 1999 37737/172006362 4 Brazil 2000 80488/174504898 5 China 1999 212258/1272915272 6 China 2000 213766/1280428583
![Page 60: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/60.jpg)
country 1999 2000 1 Afghanistan 745 2666 2 Brazil 37737 80488 3 China 212258 213766
country 1999 2000 1 Afghanistan 19987071 20595360 2 Brazil 172006362 174504898 3 China 1272915272 1280428583
![Page 61: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/61.jpg)
![Page 62: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/62.jpg)
GETTING YOUR DATA INTO R
![Page 63: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/63.jpg)
read_dta(file = "data/my_stata_file.dta")
read_spss(file = "data/my_spss_file.sav")
read_sas(data_file = "<NAME>", catalog_file = "<NAME>")
my_data <- read_csv(file = “data/organdonation.csv")
read_csv2(file = "data/my_csv_file.csv")
read_table(file = "<NAME>")
Field delimiter is ;
Field delimiter is ,
Structured but not delimited
![Page 64: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/64.jpg)
url <- "https://cdn.rawgit.com/kjhealy/viz-organdata/master/organdonation.csv"
organs <- read_csv(file = url)
organs <- read_csv(file = "data/organdonation.csv")
Local File Path
Remote URL
![Page 65: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/65.jpg)
engmort <- read_table(file = "data/mortality.txt", skip = 2, na = ".")
![Page 66: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/66.jpg)
HOW ggplot WORKS
![Page 67: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/67.jpg)
ggplot’s FLOW OF ACTION
![Page 68: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/68.jpg)
![Page 69: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/69.jpg)
gdp lifexp pop continent
340 65 31 Euro
227 51 200 Amer
909 81 80 Euro
126 40 20 Asia
![Page 70: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/70.jpg)
AsiaEuroAmer
0-3536-100
>100
log GDP
Life E
xpec
tancy
A Gapminder Plot
Continent
Population
![Page 71: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/71.jpg)
gdp lifexp pop continent
340 65 31 Euro
227 51 200 Amer
909 81 80 Euro
126 40 20 Asia
1. Tidy Data
x=gdp y=lifexp size=pop color=continent
2. Mapping 3. Geomgeom_point()ggplot(mapping = aes(x = …))ggplot(data = gapminder)
![Page 72: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/72.jpg)
x
y y
log10 x
AsiaEuroAmer
0-35
36-100
>100
log GDP
Life E
xpec
tancy
A Gapminder Plot
4. Coordinate System
5. Scales 6. Labels & Guides
Continent
Population
![Page 73: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/73.jpg)
AsiaEuroAmer
0-3536-100
>100
log GDP
Life E
xpec
tancy
A Gapminder Plot
Continent
Population
![Page 74: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/74.jpg)
PIECE BY PIECE
![Page 75: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/75.jpg)
head(gapminder)
## # A tibble: 6 × 6 ## country continent year lifeExp pop gdpPercap ## <fctr> <fctr> <int> <dbl> <int> <dbl> ## 1 Afghanistan Asia 1952 28.801 8425333 779.4453 ## 2 Afghanistan Asia 1957 30.332 9240934 820.8530 ## 3 Afghanistan Asia 1962 31.997 10267083 853.1007 ## 4 Afghanistan Asia 1967 34.020 11537966 836.1971 ## 5 Afghanistan Asia 1972 36.088 13079460 739.9811 ## 6 Afghanistan Asia 1977 38.438 14880372 786.1134
dim(gapminder) ## [1] 1704 6
![Page 76: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/76.jpg)
p <- ggplot(data = gapminder)
Create a ggplot objectData is gapminder table
![Page 77: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/77.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp))
mapping: tell ggplot the variables you want represented by features of the plot
![Page 78: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/78.jpg)
• The mapping = aes(!!...) instruction links variables to things you will see on the plot.
• The x and y values are the most obvious ones.
• Other aesthetic mappings can include, e.g., color, shape, and size.
![Page 79: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/79.jpg)
Mappings do not directly specify the particular, e.g., colors, shapes, or line styles that will appear on the plot. Rather they establish which variables in the data will be represented by which visible features on the plot.
![Page 80: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/80.jpg)
p + geom_point()
Add a geom layer to the plot
![Page 81: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/81.jpg)
![Page 82: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/82.jpg)
p + geom_smooth()
Try a different geom
![Page 83: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/83.jpg)
![Page 84: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/84.jpg)
This process is literally additive
p + geom_point() + geom_smooth() + scale_x_log10(labels = scales::dollar)
![Page 85: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/85.jpg)
p + geom_point() + geom_smooth(method = "lm")
Every geom is a function. Functions take arguments.
![Page 86: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/86.jpg)
![Page 87: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/87.jpg)
Keep Layering
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp)) p + geom_point() + geom_smooth(method = "lm") + scale_x_log10(label = scales::dollar)
![Page 88: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/88.jpg)
![Page 89: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/89.jpg)
p + geom_point() + geom_smooth(method = "gam") + scale_x_log10(labels = scales::dollar) + labs(x = "GDP Per Capita", y = "Life Expectancy in Years", title = "Economic Growth and Life Expectancy", subtitle = "Data points are country-years", caption = "Data source: Gapminder")
![Page 90: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/90.jpg)
![Page 91: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/91.jpg)
MAPPING vs SETTING
AESTHETICS
![Page 92: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/92.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp, color = "purple")) p + geom_point() + geom_smooth(method = "loess") + scale_x_log10()
![Page 93: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/93.jpg)
What has gone wrong here?
![Page 94: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/94.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp) p + geom_point(color = "purple") + geom_smooth(method = "loess")) + scale_x_log10()
![Page 95: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/95.jpg)
![Page 96: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/96.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp)) p + geom_point(alpha = 0.3) + geom_smooth(color = "orange", se = FALSE, size = 2, method = "lm") + scale_x_log10()
Here, some aesthetics are mapped, and some are set
![Page 97: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/97.jpg)
![Page 98: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/98.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp, color = continent, fill = continent)) p + geom_point() + geom_smooth(method = "loess") + scale_x_log10()
![Page 99: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/99.jpg)
![Page 100: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/100.jpg)
MAP or SET AESTHETICS
per geom
![Page 101: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/101.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp)) p + geom_point(mapping = aes(color = continent)) + geom_smooth(method = "loess") + scale_x_log10()
![Page 102: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/102.jpg)
![Page 103: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/103.jpg)
PAY CLOSE ATTENTION TO HOW SCALES ARE
DRAWN, AND WHY
![Page 104: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/104.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp, color = continent, fill = continent)) p + geom_point() + geom_smooth(method = "loess") + scale_x_log10()
![Page 105: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/105.jpg)
p <- ggplot(data = gapminder, mapping = aes(x = gdpPercap, y = lifeExp)) p + geom_point(mapping = aes(color = continent)) + geom_smooth(method = "loess") + scale_x_log10()
![Page 106: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/106.jpg)
REMEMBER: EVERY MAPPED
VARIABLE HAS A SCALE
![Page 107: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/107.jpg)
Saving Your Work
![Page 108: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/108.jpg)
ggsave()
ggsave("figures/my_figure.png")
ggsave("my_figure.pdf")
ggsave("my_figure.pdf", plot = p5, scale = 1.2)
ggsave("figures/my-figure.pdf", plot = p5, width = 8, height = 5)
With ggsave
![Page 109: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/109.jpg)
pdf(file = "plot.pdf", height = 5in, width = 5in)
print(p4)
dev.off()
With pdf() or other graphics devices
Open device …
… and close when done
![Page 110: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/110.jpg)
```{r my_plot, fig.cap="My Plot", fig.width=9, fig.height=8}
```
Within an Rmd chunk
p + geom_point(mapping = aes(color = continent)) + geom_smooth(method = "loess") + scale_x_log10()
knitr::opts_chunk$set(fig.width=8, fig.height=5)
Set defaults in your first code chunk
![Page 111: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/111.jpg)
Getting Help
![Page 112: GETTING STARTEDsocviz880.co/slides/02_dataviz_s20_getting_started.pdf · eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enimad minim veniam, quis nostrud exercitation](https://reader035.fdocuments.net/reader035/viewer/2022081409/6073753675e28e08ef2e642c/html5/thumbnails/112.jpg)