Map of Ukraine

Author

Nazarchuk Daryna

packages <- c("maps", "ggimage")

for (pkg in packages) {
  if(!require(pkg, character.only = TRUE)) {
    install.packages(pkg)
    library(pkg, character.only = TRUE)
  }
}

ukraine_map <- map_data("world", region = "Ukraine")

uzhhorod <- data.frame(
  city = "Uzhhorod",
  lon = 22.2879,
  lat = 48.6208
)

kyiv <- data.frame(
  city = "Kyiv",
  lon = 30.5234,
  lat = 50.4501
)

dnipro <- data.frame(
  city = "Dnipro",
  lon = 35.0462,
  lat = 48.4647
)

ukraine <- ggplot(ukraine_map, aes(x = long, y = lat, group = group)) +
  geom_polygon(fill = "white", color = "pink", linewidth = 1) +
  coord_quickmap() +
  
  # Uzhhorod
  geom_image(
    data = uzhhorod,
    aes(x = lon, y = lat),
    image = "heart.png",
    size = 0.04,
    inherit.aes = FALSE
  ) +
  
  geom_text(
    data = uzhhorod,
    aes(x = lon, y = lat, label = city),
    vjust = 0.3,
    hjust = -0.05,
    nudge_x = 0.3,
    fontface = "bold",
    inherit.aes = FALSE
  ) +
  
  # Kyiv
  
  geom_image(
    data = kyiv,
    aes(x = lon, y = lat),
    image = "heart.png",
    size = 0.04,
    inherit.aes = FALSE
  ) +
  geom_text(
    data = kyiv,
    aes(x = lon, y = lat, label = city),
    vjust = 0.3,
    hjust = -0.05,
    nudge_x = 0.3,
    fontface = "bold",
    inherit.aes = FALSE
  ) +
  geom_image(
    data = dnipro,
    aes(x = lon, y = lat),
    image = "heart.png",
    size = 0.04,
    inherit.aes = FALSE
  ) +
  
  geom_text(
    data = dnipro,
    aes(x = lon, y = lat, label = city),
    vjust = 0.3,
    hjust = -0.05,
    nudge_x = 0.3,
    fontface = "bold",
    inherit.aes = FALSE
  ) +
  
  ggtitle(
    "Ukrainian Biological Data Science Summer School",
    subtitle = "July 11 – 25, 2026"
  ) +
  theme(
    plot.title = element_text(color = "pink", face = "bold", size = 13),
    plot.subtitle = element_text(color = "black", face = "bold", size = 11)
  )

ukraine