Как изменить интервал меток на оси графика?
Какие параметры следует использовать с базовым графиком или с rgl
?
Как изменить интервал меток на оси графика?
Какие параметры следует использовать с базовым графиком или с rgl
?
Существует два способа достижения этого в базовом графе (мои примеры относятся к оси x, но работают одинаково для оси y):
Используйте par(xaxp = c(x1, x2, n))
или plot(..., xaxp = c(x1, x2, n))
, чтобы определить положение (x1
и x2
) экстремальных меток и количество интервалов между отметками (n
). Соответственно, n+1
- количество отмеченных галочек. (Это работает, только если вы не используете логарифмический масштаб, для поведения с логарифмическими шкалами см. ?par
.)
Вы можете полностью отключить рисование оси и добавить отметки меток позже axis()
.
Для подавления рисунка оси используйте plot(... , xaxt = "n")
.
Затем вызовите axis()
с помощью side
, at
и labels
: axis(side = 1, at = v1, labels = v2)
. С side
со ссылкой на сторону оси (1 = ось x, 2 = ось y), v1
является вектором, содержащим положение тиков (например, c(1, 3, 5)
, если ваша ось колеблется от 0 до 6 и вам нужны три метки), а v2
- вектор, содержащий метки для указанных меток (должен быть такой же длины, как v1
, например, c("group a", "group b", "group c")
). См. ?axis
и мой обновленный ответ на сообщение о stats.stackexchange для примера этого метода.
С базовой графикой самый простой способ - остановить функции построения графика от рисования осей и затем нарисовать их самостоятельно.
plot(1:10, 1:10, axes = FALSE)
axis(side = 1, at = c(1,5,10))
axis(side = 2, at = c(1,3,7,10))
box()
У меня есть набор данных с Time как ось x и интенсивность как ось y. Мне нужно сначала удалить все оси по умолчанию, кроме меток осей, с помощью:
plot(Time,Intensity,axes=F)
Затем я перестраиваю элементы графика с помощью:
box() # create a wrap around the points plotted
axis(labels=NA,side=1,tck=-0.015,at=c(seq(from=0,to=1000,by=100))) # labels = NA prevents the creation of the numbers and tick marks, tck is how long the tick mark is.
axis(labels=NA,side=2,tck=-0.015)
axis(lwd=0,side=1,line=-0.4,at=c(seq(from=0,to=1000,by=100))) # lwd option sets the tick mark to 0 length because tck already takes care of the mark
axis(lwd=0,line=-0.4,side=2,las=1) # las changes the direction of the number labels to horizontal instead of vertical.
Итак, at = c(...)
указывает набор позиций для размещения меток. Здесь я хотел бы поместить метки в 0, 100, 200,..., 1000. seq(from =...,to =...,by =...)
дает мне выбор пределов и приращений.
И если вы не хотите, чтобы R добавлял десятичные числа или нули, вы можете остановить его от рисования оси x или оси y или обоих с использованием... axt. Затем вы можете добавить свои собственные метки и метки:
plot(x, y, xaxt="n")
plot(x, y, yaxt="n")
axis(1 or 2, at=c(1, 5, 10), labels=c("First", "Second", "Third"))