Если вы действительно хотите, чтобы все метки отображались, даже если они очень близки или перекрываются, вы можете «обмануть» R, чтобы отобразить их, добавив метки нечетной и четной оси отдельными командами, как показано ниже:
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)
Вы можете поиграть с cex.axis
, чтобы получить нужный размер текста.Также обратите внимание, что вам может потребоваться настроить количество значений в at=
и / или labels=
, чтобы они были равны.
Я согласен с @PLapointe и @joran, что, как правило, лучше не вмешиваться в поведение R по умолчанию в отношении перекрытия.Тем не менее, у меня было несколько случаев, когда метки осей выглядели нормально, даже если они не были полностью разделены на «м-ширину», и я наткнулся на хитрость чередования нечетных и четных меток, чтобы получить поведение, которое яв розыске.