Как указать фактические значения оси x для построения в виде x-оси тиков в R
Я создаю график в R, и мне не нравятся значения оси x, составленные R.
Например:
x <- seq(10,200,10)
y <- runif(x)
plot(x,y)
Этот график отображает график со следующими значениями по оси X:
50, 100, 150, 200
Однако, я хочу построить 20 значений 10,20, 30 ... 200
, хранящихся в переменной x, в качестве значений оси X. Я просмотрел бесчисленные блоги и краткое руководство - после нескольких часов поиска ближайший я пришел найти что-нибудь полезное - это следующие (обобщенные) инструкции:
- вызов
plot()
или par()
, указав аргумент xaxt='n'
- вызов
axis()
например. axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)
Я попробовал, и полученный результат не имел значений оси x вообще. Возможно ли, что кто-то там знает, как это сделать? Я не могу поверить, что никто никогда не пытался это сделать раньше.
Ответы
Ответ 1
Вы найдете ответ на свой вопрос на странице справки для ?axis
.
Вот один из примеров справочной страницы, измененный вашими данными:
Вариант 1: используйте xaxp
для определения меток оси
plot(x,y, xaxt="n")
axis(1, xaxp=c(10, 200, 19), las=2)
Вариант 2: используйте at
и seq()
для определения меток:
plot(x,y, xaxt="n")
axis(1, at = seq(10, 200, by = 10), las=2)
Оба этих параметра дают один и тот же рисунок:
![enter image description here]()
PS. Поскольку у вас много ярлыков, вам придется использовать дополнительные аргументы, чтобы текст соответствовал сюжету. Я использую las
для поворота меток.
Ответ 2
Познакомьтесь с документацией ?axis
. Если вы посмотрите на описание аргумента labels
, вы увидите, что это:
"a logical value specifying whether (numerical) annotations are
to be made at the tickmarks,"
Итак, просто измените его на true, и вы получите тиковые метки.
x <- seq(10,200,10)
y <- runif(x)
plot(x,y,xaxt='n')
axis(side = 1, at = x,labels = T)
# Since TRUE is the default for labels, you can just use axis(side=1,at=x)
Будьте осторожны, если вы не растянете ширину окна, R не сможет записать все ваши ярлыки. Играйте с шириной окна, и вы увидите, что я имею в виду.
Слишком плохо, что у вас были такие проблемы с поиском документации! Каковы были ваши условия поиска? Попробуйте ввести r axis
в Google, и первая ссылка, которую вы получите, - это страница Quick R, о которой я упоминал ранее. Прокрутите вниз до "Оси", и вы получите очень хороший маленький путеводитель о том, как это сделать. Вероятно, вы должны сначала проверить их на какие-либо вопросы, связанные с построением, это будет быстрее, чем ждать ответа SO.
Ответ 3
Надеюсь, что это кодирование поможет вам:)
plot(x,y,xaxt = 'n')
axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990"))