Como você não compartilhou um conjunto mínimo de dados para a reprodução do seu exemplo, inventei algumas variáveis.
rm(list=ls())
####### "Invenção" de um conjunto de dados
n=500
col.1 = rep(NA,n)
s1.2009 = cumsum(rnorm(n))
s1.2010 = cumsum(rnorm(n))
s1.2011 = cumsum(rnorm(n))
s1.2012 = cumsum(rnorm(n))
s1.2013 = cumsum(rnorm(n))
dados = data.frame(cbind(col.1, s1.2009,s1.2010,
s1.2011,s1.2012, s1.2013))
####### Gráfico:
boxplot(dados[,-1], axes=FALSE) # O parametro axes=FALSE faz com que os eixos não sejam desenhados
title(col.main="blue",
main= 'Indicador Hemoglobina, \n semestres compreendidos entre 2009 e 2013') # Acrescenta o título do gráfico === o comando era col.main
title(col.lab="blue",xlab= 'semestres') # Acrescenta o titulo do eixo X ==== o comando era apenas col.lab
title(col.lab="blue",ylab= 'Percentual') # Acrescenta o titulo do eixo Y
box() # Desenha a caixa em torno do gráfico
axis(2) # Coloca o eixo Y (o 2 ali representa o eixo Y) no gráfico
axis(1, 1:5, c("1s09", "1s10", "1s11", "1s12", "1s13")) # Coloca no eixo X (representado pelo 1), nos pontos 1 a 5, as etiquetas dos semestres compreendidos entre 1s09 e 1s2013
medias<-apply(dados[,-1],2,mean,na.rm=TRUE) # Calcula as médias
points(medias,col="red",pch=17) # Adiciona os pontos das médias no boxplot === só pode ser usado se o boxplot já estiver plotado.