Попробуйте сохранить возвращенное значение вызова barplot()
в именованном объекте, а затем передать его в аргумент at=
axis()
:
xLabLocs <- barplot(test, space=0.4, xaxt='n', ann=FALSE)
axis(1, cex.axis=0.25, las=2, at=xLabLocs,
space=0.4, labels=colnames(test))
Это может выглядеть странно,но это объясняется в разделе Value
справочного файла ?barplot
:
Value:
A numeric vector (or matrix, when ‘beside = TRUE’), say ‘mp’,
giving the coordinates of _all_ the bar midpoints drawn, useful
for adding to the graph.
Вы только что совершили (достаточно легко сделать) ошибку, предположив, что x-координаты оси центров баров находятся в 1: n, где n - количество баров.Это не обязательно верно, поэтому приятно, что один вызов barplot()
будет одновременно: (a) представлять гистограмму как ее побочный эффект;и (b) вернуть необходимые координаты оси X в качестве возвращаемого значения.