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

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

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

tim_yates
источник
Спасибо, Тим! Не совсем то, что я искал, но это помогло мне сделать то, что я хотел =)
Дэни
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)

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

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

user9869932
источник
Ссылка на detailed explanationмертва
StephenBoesch