Definir posições diferentes de rótulos de eixos e marcas de escala em um gráfico de barras

Gostaria de realinhar / compensar o eixo xe marcas de escala associadas de um gráfico de barras. Isso deve ser simples, mas estou tendo problemas para encontrar uma resposta. Abaixo estão alguns dados de exemplo com 24 categorias.

xval = c(1:24)
count = c(0.03,0.03,0.08,0.06,0.11,0.4,0.3,0.5,0.5,0.6,0.4,0.1,0.1,0.4,0.2,0.1,0.06,0.05,0.03,0.02,0.01,0.03,0.01,0.02)
df = as.data.frame(cbind(xval, count))

Eu posso facilmente produzir um barplot com marcas de escala alinhadas nos pontos médios da barra usando o código abaixo:

mp <- barplot(df$count, space=0, axes=FALSE) 
axis(side=2, pos=-0.2)
axis(side=1, at =mp, labels=df$xval)

Eu também posso deslocar todo o eixo x (rótulos e marcas) para alinhar com a parte externa das barras usando o abaixo (embora isso agora não consiga incorporar a última barra no eixo):

axis(side=1, at =mp-0.5, labels=df$xval)

Embora eu queira que o eixo x e as marcas de escala associadas sejam alinhados aos limites da barra (ou seja, uma marca de seleção em cada lado da barra, em vez de no centro), quero que os rótulos do eixo x permaneçam nos pontos médios da barra . Existe uma maneira fácil de conseguir isso?

questionAnswers(1)

yourAnswerToTheQuestion