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
-Create a plot with the mpg dataset
-Add points with geom_point
-Assign the variable displ to the x-axis
-Assign the variable hwy to the y-axis
-Add facet_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))
-Create a plot with the mpg dataset
-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")
To help you complete this question use:
-The patchwork slides and
-The vignette: https://patchwork.data-imaginist.com/articles/patchwork.html Download the file spend_time.csv from moodle into directory for this post. Or read it in directly:
-Read_csv(“https://estanny.com/static/week7/drug_cos.csv”)
-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")
Start with spend_time
-Extract observations for 2019
-THEN create a plot with that data
-ADD a barchart with with geom_col
-Assign activity to the x-axis
-Assign avg_hours to the y-axis
-Assign activity to fill
-ADD scale_y_continuous with breaks every hour from 0 to 6 hours
-ADD labs to
-Set subtitle to Avg hours per day: 2019
-Set x and y to NULL so they won’t be labeled
-Assign the output to p1
-Display p1
Start with spend_time
-THEN create a plot with it
-ADD a barchart with with geom_col
-Assign year to the x-axis
-Assign avg_hours to the y-axis
-Assign activity to fill
-ADD labs to
-Set subtitle to “Avg hours per day: 2010-2019”
-Set x and y to NULL so they won’t be labeled
-Assign the output to p2
-Display p2
p2 <- spend_time %>%
ggplot() +
geom_col(aes(x = year, y = avg_hours, fill = activity)) +
labs(subtitle = "Avg hours per day: 2010-2019", x = NULL, y = NULL)
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
-Assign the output to 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
-See how annotate the composition here: https://patchwork.data-imaginist.com/reference/plot_annotation.html
-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")
Use spend_time from last question patchwork slides
Start with spend_time
-Extract observations for leisure/sports
-THEN create a plot with that data
-ADD points with geom_point -Aassign year to the x-axis
-Assign avg_hours to the y-axis
-ADD line with geom_smooth
-Assign year to the x-axis
-Assign 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
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 to
-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)
p6
Use patchwork to display p4 and p5 on top of p6
( p4 | p5 ) / p6
ggsave(filename = "preview.png",
path = here::here("_posts", "2021-04-05-7-exploratory-analysis-2"))