Data from 1991-1995 are contained in 02-5-child-heart-surgery-1991-x.csv, and taken from D.J. Spiegelhalter et al., Commissioned Analysis of Surgical Performance Using Routine Data: Lessons from the Bristol Inquiry.

Data from 2012-2014 were shown in Table 1.1 (page 23) and are contained in 02-5-child-heart-surgery-2012-x.csv. The data were originally presented in the NCHDA 2012-15 report, but are best seen on childrensheartsurgery.info.

Figure 2.5 (page 57) Scatterplots

Quickly in qplot

library(ggplot2)
# (a) Survival in under-1s, 1991-1995
child.1991 <- read.csv("02-5-child-heart-surgery-1991-x.csv") # read data into dataframe 
attach(child.1991)
qplot(Operations,100*Survivors/Operations,xlim = c(0,700),ylim=c(70,100),ylab = "% 30-day survival", label = Hospital, geom=c("point", "text"),hjust=1, vjust=-1,size=2, main = "(a) Survival in under-1s, 1991-1995") + theme(legend.position="none")

# (a) Survival in under-1s, 1991-1995
#(b) Survival for all children, 2012-2015
child.2012 <- read.csv("02-5-child-heart-surgery-2012-x.csv") # read data into dataframe all
attach(child.2012)
## The following objects are masked from child.1991:
## 
##     Deaths, Hospital, Operations, PercentageDying, Survivors,
##     ThirtyDaySurvival
qplot(Operations,100*Survivors/Operations,xlim = c(0,2000),ylim=c(95,100),ylab = "% 30-day survival", label = Hospital, geom=c("point", "text"),hjust=1, vjust=-1,size=2, main = "(b) Survival for all children, 2012-2015") + theme(legend.position="none")

p <- ggplot(child.1991, aes(x=Operations, y=100*Survivors/Operations, col=Hospital)) #defines plot axis data fields and colour legend data field
p <- p + geom_point(aes(size=1.5)) # defines scatter-type plot
p <- p + expand_limits(x = c(0,700),y=c(70,100))
p <- p  + scale_size_continuous(name = "Size", guide = FALSE)  # turns off otherwise added size legend
p <- p +  labs(x="Number of operations", y = "% 30-day survival", title="(a) Survival in under-1s, 1991-1995") # Adds title, subtitle, and caption
p

#(b) Survival for all children, 2012-2015
child.2012 <- read.csv("02-5-child-heart-surgery-2012-x.csv") # read data into dataframe all
q <- ggplot(child.2012, aes(x=Operations, y=100*Survivors/Operations,col=Hospital)) #defines plot axis data fields and colour legend data field
q <- q + geom_point(aes(size=1.5)) # defines scatter-type plot
q <- q + expand_limits(x = c(0,2000),y=c(95,100))
q <- q  + scale_size_continuous(name = "Size", guide = FALSE)  # turns off otherwise added size legend
q <- q +  labs(x="Number of operations", y = "% 30-day survival", title="(b) Survival for all children, 2012-2015") # Adds title, subtitle 
q