In R base plot, move axis label closer to axis

余生颓废 提交于 2020-01-01 01:11:07

问题


I have eliminated labels on the y axis because only the relative amount is really important.

w <- c(34170,24911,20323,14290,9605,7803,7113,6031,5140,4469)
plot(1:length(w), w, type="b", xlab="Number of clusters",
     ylab="Within-cluster variance",
     main="K=5 eliminates most of the within-cluster variance",
     cex.main=1.5,
     cex.lab=1.2,
     font.main=20,
     yaxt='n',lab=c(length(w),5,7), # no ticks on y axis, all ticks on x
     family="Calibri Light")

However, suppressing those tick labels leaves a lot of white space between the y axis label ("Within-cluster variance") and the y axis. Is there a way to nudge it back over? If I somehow set the (invisible) tick labels to go inside the axis, would the axis label settles along the axis?


回答1:


Try setting ylab="" in your plot call and use title to set the label of the y-axis manually. Using line you could adjust the position of the label, e.g.:

plot(1:length(w), w, type="b", xlab="Number of clusters", ylab="",
     main="K=5 eliminates most of the within-cluster variance",
     cex.main=1.5,
     cex.lab=1.2,
     font.main=20,
     yaxt='n',lab=c(length(w),5,7), # no ticks on y axis, all ticks on x
     family="Calibri Light")

title(ylab="Within-cluster variance", line=0, cex.lab=1.2, family="Calibri Light")

Please read ?title for more details.




回答2:


Adjust mgp, see ?par

title(ylab="Within-cluster variance", mgp=c(1,1,0), family="Calibri Light",cex.lab=1.2)



来源:https://stackoverflow.com/questions/30265728/in-r-base-plot-move-axis-label-closer-to-axis

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!