Here I recreate Minard’s map of Napolean’s march on Russia (https://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Minard.png/1280px-Minard.png). Data and inspiration are from The Grammar of Graphics by Leland Wilkinson.
The first step is to convert all dates to the 19th century. I’ll also save the dates as character strings now:
#convert date to 19th century
troops$date = as.Date(troops$date, format = "%m/%d/%y")
year(troops$date) <- 1800 + year(troops$date) %% 100
troops$date = format(troops$date, "%b %d %Y")
head(as.character(troops$date))
## [1] "Oct 18 1812" "Oct 24 1812" "Nov 09 1812" "Nov 14 1812" NA
## [6] "Nov 28 1812"
Next I make the plot itself, where read signifies advance and grey signifies retreat. Thickness represents the number of troops. Per Wilkinson, the map originally would have been a vibrant red, rather than the faded color seen on the linked image.
march <- ggplot(troops, aes(lonp, latp)) +
theme_classic() + theme(text = element_text(family = "French Script MT",
size = 15)) +
geom_path(aes(size = survivors, color = Direction,
group = group), lineend = "round", show.legend = T) +
geom_text_repel(aes(label = city), size = 6, family = "French Script MT") +
scale_color_manual(values = c("red","grey50")) +
scale_y_continuous(name = "", position = "right") + xlab(NULL) +
theme(axis.text = element_blank(), axis.ticks = element_blank()) +
scale_size(name = "Survivors", breaks = c(1, 2, 3) * 10^5,
labels = c("100,000", "200,000", "300,000")) +
ggtitle("Carte Figurative des Pertes Successives en Hommes de l'Armée Française dans la Campagne de Russie 1812–1813")
#temperature plot
temp <- ggplot(troops, aes(x = lont, y = temp)) + geom_line() +
scale_y_continuous(name = "Temperature", position = "right") +
theme_classic() + theme(text = element_text(family = "French Script MT", size = 15))+
geom_text_repel(aes(label = date), size=4, family = "French Script MT") + xlab("Longitude") +
ggtitle("Tableau Graphic de la Temperature")
plot_grid(march, temp, align = "v", axis = "lr", ncol = 1, rel_heights = c(2,1))
The font isn’t the most legible, but it does look old and fancy, and that’s sort of what I was going for.