Code for Quiz 9.
Create a bar chart that shows the average hours Americans spend on five activities by year. Use the timeline
argument to create an animation that will animate through the years.
spend_time
contains 10 years of data on how many hours Americans spend each day on 5 activitiesspend_time
spend_time <- read_csv("https://estanny.com/static/week8/spend_time.csv")
e_chart-1
Start with spend_time
THEN group_by year
THEN create an e_chart that assigns activity
to the x-axis and will show activity by year
(the variable that you grouped the data on)
THEN use e_timeline_opts
to set autoPlay to TRUE
THEN use e_bar
to represent the variable avg_hours
with a bar chart
THEN use e_title
to set the main title to ‘Average hours Americans spend per day on each activity’
THEN remove the legend with e_legend
Create a line chart for the activities that American spend time on.
Start with spend_time
THEN use mutate
to convert year from an number to a string (year-month-day) using mutate
paste
THEN use mutate
to convert year from a character object to a date object using the ymd
function from the lubridate package (part of the tidyverse, but not automatically loaded). ymd
converts dates stored as characters to date objects.
THEN group_by
the variable activity (to get a line for each activity)
THEN initiate an e_charts
object with year on the x-axis
THEN use e_line
to add a line to the variable avg_hours
THEN add a tooltip with e_tooltip
THEN use e_title
to set the main title to ‘Average hours Americans spend per day on each activity’
THEN use e_legend
(top = 40) to move the legend down (from the top)
spend_time
datayear
to the x-axisavg_hours
to the y-axisactivity
to colorgeom_point
geom_mark_ellipse
ggplot(spend_time, aes(x = year, y = avg_hours , color = activity)) +
geom_point() +
geom_mark_ellipse(aes(filter = activity == "leisure/sports",
description= "Americans spend on average more time each day on leisure/sports than the other activities"))
Modify the tidyquant example in the video
Retrieve stock price for Amazon, ticker: AMZN, using tq_get
from 2019-08-01 to 2020-07-28
assign output to df
df <-tq_get("AMZN", get = "stock.prices",
from = "2019-08-01", to = "2020-07-28")
Create a plot with the df data
assign date
to the x-axis
assign close
to the y-axis
ADD a line with with geom_line
ADD geom_mark_ellipse
ADD geom_mark_ellipse
ADD labs
ggplot(df, aes(x = date, y = close)) +
geom_line() +
geom_mark_ellipse(aes( filter = date == "2019-12-31", description = "U.S. Centers for Disease Control and Prevention (CDC) became aware of cases in China" ), fill = "yellow", ) +
geom_mark_ellipse(aes( filter = date == "2020-07-17", description = "The U.S. recorded what was at the time the highest single-day rise in cases anywhere in the world, with 77,638 infections" ), color = "red", ) +
labs(
title = "Amazon",
x = NULL,
y = "Closing price per share",
caption = "Source: https://en.wikipedia.org/wiki/Timeline_of_the_COVID-19_pandemic_in_the_United_States")
Save the previous plot to preview.png and add to the yaml chunk at the top
ggsave(filename = "preview.png", path = here::here("_posts", "2021-04-19-data-visualization"))