2013-09-09 2 views
1

У меня есть следующий набор данных:Возьмите диапазон заговора буквально в R?

x = c(4, 5, 10, 30, 50, 51) 
y = sqrt(x) 

И я хотел бы построить данные в х-диапазоне от 5-50

plot(x,y, xlim=c(5, 50)) 
abline(v=c(5,50), col="red") 

Но все-таки из-за пределов точек данных из этого диапазона видны , Есть ли простой способ сказать plot(), чтобы ограничить лимит буквально. До сих пор я придумал две идеи:

  1. Удалить задворках сюжета (я на самом деле, как на полях, но не данных, которые становятся видимыми)
  2. исключить данные из переменных перед построением их (в мой опыт, который всегда был утомительным - подмножество() может работать, когда вы упорядочивать данные в data.frame)
+0

Было ниже, что вы искали? –

ответ

1

по умолчанию R слегка расширяет диапазон оси (на 4%), прежде чем он пытается найти nice разрывы меток (например, 2,4,6 или 5,10,15 и т.д). Вы можете изменить это с par параметром xaxs="i" - стоя на internal, которые вы можете передать в качестве одного из ... аргументов в вызове для построения:

plot(x,y, xlim=c(5, 50) , xaxs = "i") 

enter image description here

Некоторые информации на странице справки для par которые могут быть использованы:

xaxs
Стиль расчета интервалов оси, который будет использоваться для оси x. Возможные значения: «r», «i», «e», «s», «d».
Стили, как правило, контролируются диапазоном данных или xlim, если они заданы.

  • Стиль «r» (обычный) сначала расширяет диапазон данных на 4 процента на каждом конце, а затем находит ось с красивыми ярлыками, которые вписываются в расширенный диапазон.
  • Стиль «i» (внутренний) просто находит ось с симпатичными метками, которая помещается в пределах исходного диапазона данных.
+2

Черт ... избили секунды. :-) – thelatemail

+0

@thelatemail ha ha. Если бы у меня была копейка ... –

+0

Я имею в виду, если бы у меня была копейка за каждое случившееся со мной время. Я бы по крайней мере пару раз лучше. –