Изменить интервал между отметками на оси графика?

Как я могу изменить расстояние между отметками на оси графика?

Какие параметры я должен использовать с базовым графиком или сrgl?

 Ferroao14 авг. 2019 г., 04:35
посмотри наstackoverflow.com/questions/34519823/minor-tick-position-in-r для размера клещей

Ответы на вопрос(5)

е оси 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"))
 Clem Wang16 февр. 2019 г., 22:17
Конечно, вы можете программно включать и выключать эту переменнуюflag сyaxt=flag  НО хитрость в том, что если вы хотите использовать стандартные метки, то установитеflag <- "s" и если вы не хотите стандартные метки, то используйтеflag <- "n"  (Добавляя это, потому что мне потребовалось некоторое время, чтобы найти "s")

я графиков от осей рисования, а затем нарисовать их самостоятельно.

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()
 Gavin Simpson26 сент. 2010 г., 01:01
Посмотрите на графический параметрlas в? par, который можно добавить к звонкуaxis()и который контролирует ориентацию меток. Например.axis(side = 1, at = c(1,5,10), las = 2), Возможно, вы захотите выяснить, есть лиaxis() функция для объектов хрон или рассмотрите использование классов даты и времени R, которые уже имеютaxis() функции (например,axis.Date() для класса «Дата»).
 skan25 сент. 2010 г., 14:54
Здравствуйте, у меня есть данные datetime по оси x, (chron) В моем случае я думаю, что это должен быть лучший способ, чем написать строку, скажем, с 25 полными датами. Что если я хочу, чтобы даты были написаны вертикально на оси x, я имею в виду перпендикулярно. ура

Hmisc пакет:

Содержит множество функций, полезных для анализа данных, высокоуровневой графики, операций утилит, функций для вычисления размера и мощности выборки, импорта и аннотирования наборов данных, вменения пропущенных значений, расширенного создания таблиц, кластеризации переменных, манипуляции с символьными строками, преобразования объектов R в LaTeX. и HTML-код и перекодирование переменных.

library(Hmisc)    
plot(...)
minor.tick(nx=10, ny=10) # make minor tick marks (without labels) every 10th
Решение Вопроса

базовый граф (мои примеры для оси 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 для примера этого метода.

 Henrik05 дек. 2012 г., 20:16
@ThomasH Вы правы. Я уточнил это в ответе.
 Henrik21 февр. 2012 г., 14:25
попробуй функцииformatC или жеprettyNumдля создания векторов символов для передачиlabels, Например.:formatC(seq(0,2,0.5), digits = 1, format = "f")
 Daniel Bonetti08 окт. 2013 г., 16:09
Для меня это не работает сpar(xaxp..), Это работает только тогда, когда я положил его внутрьplot(xaxp...)
 ThomasH05 дек. 2012 г., 18:16
+1 давно искал, чтобы найти это. Оказывается, хотя этоn на самом деле количество отметок-1, Я хотел отметки от1 в9 и должен был установитьxaxp = c(1, 9, 8) или я бы не получил желаемого результата.
 eipi1020 февр. 2012 г., 18:41
Есть ли способ контролировать, сколько десятичных знаков R использует для числовых меток. Я только что попробовал label = c (0.0,0.5,1.0,1.5,2.0), но на графике метки были 0, 0.5, 1, 1.5 и т. Д. Есть ли способ получить одинаковое количество знаков после запятой на всех метках? Я попробовал label = round (seq (0,2,0.5), 1), но целые числа все еще не имели десятичных разрядов.

Ваш ответ на вопрос