Заменить ось X собственными значениями


101

У меня вопрос по команде plot ().

Есть ли способ полностью исключить ось x и заменить ее собственными значениями? Я знаю, что могу избавиться от оси, выполнив

plot(x,y, xaxt = 'n')

а затем добавьте ось с

axis(side = 1 etc.)

Однако, когда я добавляю ось, очевидно, что она по-прежнему относится к данным, обозначенным как «x». Я хотел бы только нанести на график значения «y» и добавить ось x свою собственную в смысле просто «рисования» оси x с указанными собственными значениями. Есть ли способ это сделать?

Предыстория этого вопроса состоит в том, что мои два фрейма данных различаются по длине, и поэтому я не могу их построить.


Вы хотите построить векторы с разной длиной или просто хотите установить метку x самостоятельно? Не могли бы вы привести пример или дать дополнительную информацию о наборе данных?
— Manoel Galdino

Вы также можете захотеть узнать, как объединить два фрейма данных вместе. Возможно, вы сможете построить больше графиков из своих данных и, вероятно, сделать данные более информативными.
— Сэм,



Ответы:


182

Не уверен, что вы имеете в виду, но вы можете сделать это:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

который затем дает вам график:

введите описание изображения здесь


Спасибо, Тим! Не совсем то, что я искал, но это помогло мне сделать то, что я хотел =)
— Дэни

5
x и y в этом случае имеют одинаковую длину. как нарисовать n меток, когда длина другой оси равна m?
— Colbert Sesanker

2
просто для справки: xaxt="n"опция в plotкоманде подавляет маркировку оси x. Если эта опция не включена, axisбудет НООП.
— Steen

Это работает, но как мне повернуть его вертикально? las = 2 не работает.
— runningbirds

Я попробовал решение. xaxt = "n"вариант работал для временных рядов ts-класса. Но в случае нескольких временных рядов (мтс-класс) это не сработало.
— Эрдоган CEVHER 01

15

Йо также мог установить labels = FALSEвнутри axis(...)и распечатать этикетки отдельной командой с текстом. С помощью этой опции вы можете повернуть текст, если вам это нужно.

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

Подробное объяснение здесь

Изображение с повернутыми этикетками


Ссылка на detailed explanationмертва
— StephenBoesch
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.