The strengths of this visualization are how it shows the different volumes of cause of death in the Crimean war from 1854-1856, which was done by hand. Clearly you can tell that disease was a leading factor of soldier’s deaths. A weakness of the diagram in my opinion is that the months of each bar chart are angled, making it a bit difficult to read depending on the point of view. In my first example, the months are angled to reflect the actual diagram, and my second example I have the months starting at 3*pi/2 to make it more presentable.
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(tidyr)
library(dplyr)
library(ggplot2)
library(ggthemes)
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
library(AER)
## Loading required package: car
## Loading required package: carData
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:purrr':
##
## some
## Loading required package: lmtest
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
library(Hmisc)
## Loading required package: lattice
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:dplyr':
##
## src, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
library(zoo)
library(hexbin)
library(grid)
library(gridExtra)
##
## Attaching package: 'gridExtra'
## The following object is masked from 'package:dplyr':
##
## combine
load("Nightingale.RData")
d1 <- Nightingale %>%
pivot_longer(cols = 8:10, names_to = "Cause", values_to = "Rate") %>%
mutate(Cause = gsub(".rate", "", Cause),
period = ifelse(Date <= as.Date("1855-03-01"), "April 1854 to March 1855", "April 1855 to March 1856"),
Month = fct_relevel(Month, "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Jan", "Feb", "Mar", "Apr", "May", "Jun"))
d2 <- filter(d1, Cause == "Disease") %>%
mutate(Angle = c(80, 45, 10, -15, -40, -70, -100, -125, -175, -185, -220, 100, 75, 45, 10, -20, -35, -75, -110, -120, -175, -190, -215, 110))
ggplot(d1) +
geom_bar(aes(Month, Rate, fill = Cause), width = 1, stat = "identity", position = "identity", alpha = 0.5) +
geom_text(d2, mapping = aes(x = Month, y = Rate + 175, label = Month), angle = d2$Angle) +
coord_polar() +
facet_wrap(~period) +
scale_fill_manual(values = c("skyblue3", "grey30", "firebrick")) +
scale_y_sqrt() +
theme_void() +
theme(axis.text.x = element_blank(),
strip.text = element_text(size = 11),
legend.position = "bottom",
plot.background = element_rect(fill = alpha("#F3E7E7", 0.5)),
plot.margin = unit(c(10, 10, 10, 10), "pt"),
plot.title = element_text(vjust = 5)) +
ggtitle("Diagram of the Causes of Mortality in the Army in the East")
d3 <- filter(d1, Cause == "Disease")
ggplot(d1) +
geom_bar(aes(Month, Rate, fill = Cause), width = 1, stat = "identity", position = "identity", alpha = 0.5) +
geom_text(d3, mapping = aes(x = Month, y = Rate + 175, label = Month)) +
coord_polar(start = 3*pi/2) +
facet_wrap(~period) +
scale_fill_manual(values = c("skyblue3", "grey30", "firebrick")) +
scale_y_sqrt() +
theme_void() +
theme(axis.text.x = element_blank(),
strip.text = element_text(size = 11),
legend.position = "bottom",
plot.background = element_rect(fill = alpha("#F3E7E7", 0.5)),
plot.margin = unit(c(10, 10, 10, 10), "pt"),
plot.title = element_text(vjust = 5)) +
ggtitle("Diagram of the Causes of Mortality in the Army in the East")