Data visualization, part 2. Code for Quiz 8.
Replace all the ???s. These are answers on your moodle quiz. Run all the individual code chunks to make sure the answers in this file correspond with your quiz answers
After you check all your code chunks run then you can knit it. It won’t knit until the ??? are replaced
The quiz assumes that you have watched the videos, downloaded (to your examples folder) and worked through the exercises in exercises_slides-50-61.Rmd
#Question: modify slide 51
mpg
data setgeom_point
displ
to the x-axishwy
to the y-axisfacet_wrap
to split the data into panels based on the manufacturer
ggplot(data = mpg) +
geom_point(aes(x = displ, y = hwy)) +
facet_wrap(facets = vars(manufacturer))
#Modify facet-ex-2
Create a plot with the mpg
data set
add bars with with geom_bar
assign the variable manufacturer to the y-axis * add facet_grid
to split the data into panels based on the class
let scales vary across columns
let space taken up by panels vary by columns
ggplot(mpg) +
geom_bar(aes(y = manufacturer)) +
facet_grid(vars(class), scales = "free_y", space = "free_y")
#Question: spend_time
To help you complete this question use:
Download the file spend_time.csv
from moodle
spend_time
contains 10 years of data on how many hours Americans
spend each day on 5 activities read it into spend_time
spend_time <- read_csv("spend_time.csv")
spend_time
geom_col
activity
to the x-axisavg_hours
to the y-axisactivity
to fillscale_y_continuous
with breaks every hour from 0 to 6 hourslabs
tosubtitle
to Avg hours per day: 2013x
and y
to NULL so they won’t be labeledp1
p1
Start with spend_time
geom_col
year
to the x-axisavg_hours
to the y-axisactivity
to filllabs
top2
p2
Use patchwork to display p1 on top of p2
- assign the output to p_all
- display p_all
p_all <- p1 / p2
p_all
Start with p_all
- AND set legend.position
to ‘none’ to get rid of the legend
p_all_no_legend
- display p_all_no_legend
p_all_no_legend <- p_all & theme(legend.position = 'none')
p_all_no_legend
Start with p_all_no_legend
- ADD plot_annotation
set
- title
to “How much time Americans spent on selected activities”
- caption
to “Source: American Time of Use Survey, https://data.bls.gov/cgi-bin/surveymost?tu”
p_all_no_legend +
plot_annotation(title = "How much time Americans spent on selected activities",
caption = "Source: American Time of Use Survey, https://data.bls.gov/cgi-bin/surveymost?tu")
#Question: Patchwork 2
Use spend_time
from last question patchwork slides
Start with spend_time
- extract observations for leisure/sports
- ADD points with geom_point
- assign year
to the x-axis
avg_hours
to the y-axis- ADD line with geom_smooth
- assign year
to the x-axis
avg_hours
to the y-axis- ADD breaks on for every year on x axis with with scale_x_continuous
ADD labs
to
set subtitle
to Avg hours per day: leisure/sports
- set x
and y
to NULL so x and y axes won’t be labeled
- assign the output to p4
- display p4
p4 <-
spend_time %>% filter(activity == "leisure/sports") %>%
ggplot() +
geom_point(aes(x = year, y = avg_hours)) +
geom_smooth(aes(x = year, y = avg_hours)) +
scale_x_continuous(breaks = seq(2010, 2019, by = 1)) +
labs(subtitle = "Avg hours per day: leisure/sports", x = NULL, y = NULL)
Start with p4
- ADD coord_cartesian
to change range on y axis to 0 to 6
- assign the output to p5
- display p5
p5 <- p4 + coord_cartesian(ylim = c(0, 6))
p5
Start with spend_time
- create a plot with that data
- ADD points with geom_point
- assign year
to the x-axis
assign avg_hours
to the y-axis
assign activity
to color
- assign activity
to group
- ADD line with geom_smooth
- assign year
to the x-axis
- assign avg_hours
to the y-axis
- assign activity
to color - assign activity
to group
- ADD breaks on for every year on x axis with with scale_x_continuous
- ADD coord_cartesian
to change range on y axis to 0 to 6
- ADD labs
- set x
and y
to NULL so they won’t be labeled
- assign the output to p6
- display p6
p6 <-
spend_time %>%
ggplot() +
geom_point(aes(x = year, y = avg_hours, color = activity, group = activity)) +
geom_smooth(aes(x = year, y = avg_hours, color = activity, group = activity)) +
scale_x_continuous(breaks = seq(2010, 2019, by = 1)) +
coord_cartesian(ylim = c(0, 6)) +
labs(x = NULL, y = NULL)
Use patchwork to display p4
and p5
on top of p6
( p4 | p5 ) / p6