Women Live Longer?
1 Setting up R Packages
Plot Fonts and Theme
Show the Code
library(systemfonts)
library(showtext)
## Clean the slate
systemfonts::clear_local_fonts()
systemfonts::clear_registry()
##
showtext_opts(dpi = 96) # set DPI for showtext
sysfonts::font_add(
family = "Alegreya",
regular = "../../../../../../fonts/Alegreya-Regular.ttf",
bold = "../../../../../../fonts/Alegreya-Bold.ttf",
italic = "../../../../../../fonts/Alegreya-Italic.ttf",
bolditalic = "../../../../../../fonts/Alegreya-BoldItalic.ttf"
)
sysfonts::font_add(
family = "Roboto Condensed",
regular = "../../../../../../fonts/RobotoCondensed-Regular.ttf",
bold = "../../../../../../fonts/RobotoCondensed-Bold.ttf",
italic = "../../../../../../fonts/RobotoCondensed-Italic.ttf",
bolditalic = "../../../../../../fonts/RobotoCondensed-BoldItalic.ttf"
)
showtext_auto(enable = TRUE) # enable showtext
##
theme_custom <- function() {
font <- "Alegreya" # assign font family up front
"%+replace%" <- ggplot2::"%+replace%" # nolint
theme_classic(base_size = 14, base_family = font) %+replace% # replace elements we want to change
theme(
text = element_text(family = font), # set base font family
# text elements
plot.title = element_text( # title
family = font, # set font family
size = 24, # set font size
face = "bold", # bold typeface
hjust = 0, # left align
margin = margin(t = 5, r = 0, b = 5, l = 0)
), # margin
plot.title.position = "plot",
plot.subtitle = element_text( # subtitle
family = font, # font family
size = 14, # font size
hjust = 0, # left align
margin = margin(t = 5, r = 0, b = 10, l = 0)
), # margin
plot.caption = element_text( # caption
family = font, # font family
size = 9, # font size
hjust = 1
), # right align
plot.caption.position = "plot", # right align
axis.title = element_text( # axis titles
family = "Roboto Condensed", # font family
size = 12
), # font size
axis.text = element_text( # axis text
family = "Roboto Condensed", # font family
size = 9
), # font size
axis.text.x = element_text( # margin for axis text
margin = margin(5, b = 10)
)
# since the legend often requires manual tweaking
# based on plot content, don't define it here
)
}
## Use available fonts in ggplot text geoms too!
ggplot2::update_geom_defaults(geom = "text", new = list(
family = "Roboto Condensed",
face = "plain",
size = 3.5,
color = "#2b2b2b"
))
ggplot2::update_geom_defaults(geom = "label", new = list(
family = "Roboto Condensed",
face = "plain",
size = 3.5,
color = "#2b2b2b"
))
## Set the theme
ggplot2::theme_set(new = theme_custom())
2 Introduction
This dataset pertains to survival ages in different countries across the world. Women survival ages are compared to those of men.
3 Read the Data
Rows: 18,408
Columns: 7
$ Entity <chr> "…
$ Code <chr> "…
$ Year <dbl> 2…
$ `Life expectancy - Sex: female - Age: at birth - Variant: estimates` <dbl> N…
$ `Life expectancy - Sex: male - Age: at birth - Variant: estimates` <dbl> N…
$ `Population - Sex: all - Age: all - Variant: estimates` <dbl> N…
$ Continent <chr> "…
4 Data Dictionary
NoteQuantitative Variables
Write in.
NoteQualitative Variables
Write in.
NoteObservations
Write in.
5 Analyse/Transform the Data
```{r}
#| label: data-preprocessing
#
# Write in your code here
# to prepare this data as shown below
# to generate the plot that follows
# Rename Variables if needed
# Change data to factors etc.
# Set up Counts, histograms etc
```
6 Research Question
Note
Write in!! Look at the Chart!
7 Plot the Data
8 Task and Discussion
- Complete the Data Dictionary.
- Select and Transform the variables as shown.
- Create the graphs shown and discuss the following questions:
- Identify the type of charts
- Identify the variables used for various geometrical aspects (x, y, fill…). Name the variables appropriately.
- What research activity might have been carried out to obtain the data graphed here? Provide some details.
- What pre-processing of the data was required to create the chart?
- What might be the Hypothesis / Research Question, based on the Chart?
- What does the dashed line in the chart represent?
- Write a 2-line story based on the chart, describing your inference/surprise.
9 Reference
In order to obtain that floating text note slope = 1
in the chart, you need to use gf_refine(annotate(....))
. Look at the vignette/help here. https://ggplot2.tidyverse.org/reference/annotate.html