Si realmente quiere forzar todas las etiquetas para mostrar, incluso cuando están muy cerca o que se superponen, se puede "engañar" R en mostrarlos mediante la adición de etiquetas de pares e impares ejes con comandos separados, de la siguiente manera:
labs <-c("0\n9.3%","1\n7.6%","2\n5.6%","3\n5.1%","4\n5.7%","5\n6.5%","6\n7.3%",
"7\n7.6%","8\n7.5%","9\n7%", "10\n6.2%","11\n5.2%","12\n4.2%",13:27)
n=length(labs)
plot(1:28, xaxt = "n")
axis(side=1, at=seq(1,n,2), labels=labs[seq(1,n,2)], cex.axis=0.6)
axis(side=1, at=seq(2,n,2), labels=labs[seq(2,n,2)], cex.axis=0.6)
se puede jugar con cex.axis
para obtener el tamaño de texto que desea. Tenga en cuenta también que es posible que tenga que ajustar el número de valores en at=
y/o labels=
para que sean iguales.
Estoy de acuerdo con @PLapointe y @joran en que generalmente es mejor no alterar el comportamiento predeterminado de R con respecto a la superposición. Sin embargo, he tenido algunos casos en los que las etiquetas de los ejes se veían bien incluso cuando no estaban completamente separadas por "m-ancho", y acerté con el truco de alternar etiquetas impares y pares como una forma de obtener el comportamiento I querido.
¿Realmente desea incluir 0 en su indexación? –