If you were to divide the population of the UK into these two groups…
intro <- tibble(category = c("a", "b"), height = c(1,1), name = c("White", "Black, Asian, Mixed or other Ethnic group (BAME)"))
ggplot(intro) +
geom_bar(aes(category, height, fill = name), stat = "identity", width = 0.5) +
scale_fill_manual(values = c("dark blue", "light blue")) +
geom_text(aes(x = category, y = height, group = category, label = str_wrap(name, 15), colour = name),
position = position_stack(vjust = 0.5), family = "Source Sans Pro", fontface = "bold", size = 4) +
scale_colour_manual(values = c("white", "black")) +
theme_minimal() +
theme(text= element_text(family = "Source Sans Pro"),
plot.margin=grid::unit(c(0,0,0,0), "mm"),
aspect.ratio = 0.22,
legend.position = "none",
panel.grid = element_blank(),
axis.title = element_blank(),
axis.text = element_blank())

…it would look like this:
ggplot(filter(intro_data, Measure == "UK"),
aes(x = "1", y = Value, fill = Ethnicity_binary)) +
geom_bar(stat='identity', width = 0.75) +
coord_flip() +
scale_y_continuous(limits = c(0, 100)) +
geom_hline(yintercept = 86.4, linetype = "dotted", size = 1.5) +
# Colour scheme
scale_fill_manual(values = c("dark blue", "light blue")) +
# Customise theme
theme_minimal() +
theme(text= element_text(family = "Source Sans Pro"),
plot.margin=grid::unit(c(0,0,0,0), "mm"),
panel.grid = element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
legend.position = "none",
plot.caption = element_text(size = 8, vjust = -5, colour = "dark grey")) +
# Create dynamic % labels on each bar
geom_text(aes(group = Value, label = label, colour = Ethnicity_binary),
position = position_stack(vjust = 0.5),
family = "Source Sans Pro", fontface = "bold", size = 4.5) +
scale_colour_manual(values = c("white", "black")) +
labs(caption = "Year: 2011. Region: UK. Source: Office for National Statistics.")

In a racially equal society, this proportion wouldn’t change dramatically if we looked at the population of prisoners, undergraduates or homeowners.
But do we live in a racially equal society?
Let’s take a look.
# Plot
p <- ggplot(data) +
## Add the stacked bar
geom_bar_interactive(aes(x = as.factor(id), y = Value, fill = Ethnicity_binary,
tooltip = paste(label, " ", Ethnicity_binary)),
stat = "identity", width = 0.3) +
scale_fill_manual(values = c("dark blue", "light blue")) +
geom_hline(yintercept = 86.4, linetype = "dotted", size = 1) +
theme_minimal() +
theme(text= element_text(family = "Source Sans Pro"),
panel.grid = element_blank(),
axis.title = element_blank(),
axis.text = element_blank(),
legend.position = "none",
plot.margin = unit(c(0,0,0,0), "mm")) +
coord_polar() +
geom_text(data = label_data,
aes(x = id, y = (tot/tot)*105, label = str_wrap(Measure, 15), hjust = hjust),
angle = label_data$angle,
colour = "black", size = 1.75, family = "Source Sans Pro", fontface = "bold", inherit.aes = FALSE) +
## Change y limits to allow space for base line information
ylim(-100,max(label_data$tot + 5, na.rm=T)) +
## Add base line information
geom_segment(data = base_data,
aes(x = start, y = -5, xend = end, yend = -5),
colour = "dark grey", size = 1, lineend = "round", inherit.aes = FALSE) +
geom_text(data = base_data,
aes(x = title, y = -20, label = str_wrap(category, 1)),
angle = c(-15, -50, 90, 45, 0, -60, -290, -335),
colour = "dark grey", size = 2, family = "Source Sans Pro", fontface = "bold", inherit.aes = FALSE)
girafe(code = print(p))
Notes
1. I acknowledge that, while useful, the crude categories of ‘white’ and ‘BAME’ can hide more than they reveal. Firstly, ‘BAME’ is not a coherent, united identity - being ‘black’ in Britain is not the same as being ‘Asian’. Secondly, categorising the population on the basis of race alone ignores how other factors - such as gender, class and where you live - will define an individual’s experience of social (and racial) inequality. Despite these limitations, I believe the categories of ‘white’ and ‘BAME’ remain useful for at least giving us some indication of whether a white/non-white racial inequality exists in a particular area of life.
2. All datasets have been calculated to exclude ‘unknown’ or unrecorded ethnicities. A summary of the proportion of ‘unknown’ ethnicities in each dataset can be seen on this table.
3. Some of datsets are for the whole of the UK, while others are for just England, England and Wales, or England, Wales and Northern Ireland. The overall white/BAME proportion stays almost exactly the same for all. Given the relatively small populations of Northern Ireland, Scotland and Wales compared to England, the exclusion of these areas should not dramatically change the proprtions shown. Please see sources below for information on the exact area that each dataset covers.