Заменить ось 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.