What was your dataset?

Load your dataset in with the function below. The input is the date the dataset was issued. You should be able to get this from the tt_available() function.

critic <- readr::read_tsv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/critic.tsv')
## Parsed with column specification:
## cols(
##   grade = col_double(),
##   publication = col_character(),
##   text = col_character(),
##   date = col_date(format = "")
## )
user_reviews <- readr::read_tsv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/user_reviews.tsv')
## Parsed with column specification:
## cols(
##   grade = col_double(),
##   user_name = col_character(),
##   text = col_character(),
##   date = col_date(format = "")
## )
items <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/items.csv')
## Parsed with column specification:
## cols(
##   num_id = col_double(),
##   id = col_character(),
##   name = col_character(),
##   category = col_character(),
##   orderable = col_logical(),
##   sell_value = col_double(),
##   sell_currency = col_character(),
##   buy_value = col_double(),
##   buy_currency = col_character(),
##   sources = col_character(),
##   customizable = col_logical(),
##   recipe = col_double(),
##   recipe_id = col_character(),
##   games_id = col_character(),
##   id_full = col_character(),
##   image_url = col_character()
## )
## Warning: 2 parsing failures.
##  row          col           expected actual                                                                                                  file
## 4472 customizable 1/0/T/F/TRUE/FALSE    Yes 'https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/items.csv'
## 4473 customizable 1/0/T/F/TRUE/FALSE    Yes 'https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/items.csv'
villagers <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-05-05/villagers.csv')
## Parsed with column specification:
## cols(
##   row_n = col_double(),
##   id = col_character(),
##   name = col_character(),
##   gender = col_character(),
##   species = col_character(),
##   birthday = col_character(),
##   personality = col_character(),
##   song = col_character(),
##   phrase = col_character(),
##   full_id = col_character(),
##   url = col_character()
## )

Villagers

skimr::skim(villagers)
## Skim summary statistics
##  n obs: 391 
##  n variables: 11 
## 
## ── Variable type:character ───────────────────────────────────────────────────────
##     variable missing complete   n min max empty n_unique
##     birthday       0      391 391   3   5     0      361
##      full_id       0      391 391  11  17     0      391
##       gender       0      391 391   4   6     0        2
##           id       0      391 391   2   8     0      391
##         name       0      391 391   2   8     0      391
##  personality       0      391 391   4   6     0        8
##       phrase       0      391 391   2  10     0      388
##         song      11      380 391   7  16     0       92
##      species       0      391 391   3   9     0       35
##          url       0      391 391  60  66     0      391
## 
## ── Variable type:numeric ─────────────────────────────────────────────────────────
##  variable missing complete   n  mean    sd p0   p25 p50   p75 p100
##     row_n       0      391 391 239.9 140.7  2 117.5 240 363.5  483
##      hist
##  ▇▇▇▇▇▇▇▇

Personalities by Species

species_count <- villagers %>%
  group_by(species)  %>%
  summarize(species_count = n()) %>%
  arrange(species_count)

datatable(species_count)
level_order <- villagers %>%
  group_by(species) %>% count() %>%
  arrange(desc(n)) %>%
  pull(species)

villagers %>%
  mutate(species=factor(species, levels=level_order)) %>%
  ggplot() + aes(x=species, y=personality, color=personality) %>%
  geom_count() + 
   theme_light() + theme(legend.position = "none") +
  theme(axis.text.x = element_text(angle = 90)) 

villagers %>% select(name, species, personality, url) %>%
  mutate(combo = paste(species, personality)) %>% select(name, combo, url) -> villager_index

unique_combos <- villagers %>%
  group_by(species, personality) %>% summarize(n=n()) %>%
  filter(n == 1) %>% mutate(combo=paste(species, personality)) %>%
  inner_join(y=villager_index, by=c("combo")) %>% ungroup()

out_image <- unique_combos %>%
  ggplot() + aes(x=species, y=personality, image=url, name=name) +
  geom_count() +
  geom_raster(fill="white", color="black") +
  geom_image(asp=1.2, size=0.03) + 
   theme_minimal() + theme(legend.position = "none") +
  theme(axis.text.x = element_text(angle = 90)) + labs(title="There can be only one", subtitle = "Unique Personality/Species combos in Animal Crossing")
## Warning: Ignoring unknown parameters: colour
out_image