Ответ 1
(Только для полноты.)
Это почти невозможно в R-базовой графике. Другие ответы указывают на то, что это можно сделать в ggplot
. Возможно, это возможно в пакете playwith
, хотя короткий ход игры не показал мне способ сделать это.
В качестве примера, если я хочу нарисовать график с точками 1-5 и добавить точки 5-9, будет работать следующее:
> plot(c(1,2,3,4,5), ylim=c(0,10))
> points(c(5,6,7,8,9))
Однако, если я заранее не знаю, какие числа будут добавляться к точкам (они могут быть 5-9, также могут быть 20-29), я не могу заранее установить илим и xlim. Я хотел бы иметь возможность сделать что-то вроде следующего (что не работает):
> plot(c(1,2,3,4,5))
> points(c(5,6,7,8,9), ylim=c(0,10))
Возможно ли подобное?
(Только для полноты.)
Это почти невозможно в R-базовой графике. Другие ответы указывают на то, что это можно сделать в ggplot
. Возможно, это возможно в пакете playwith
, хотя короткий ход игры не показал мне способ сделать это.
Вы можете изменить пределы осей в ggplot2. Например,
require(ggplot2)
data(mpg)
g = ggplot(mpg, aes(cyl, cty)) + geom_point() + xlim(5, 8)
g
g + xlim(4,8)
Как упоминает Бен Болкер, в базовой графике вы определенно не можете сделать это без дополнительных пакетов.
с ggplot2
вы можете изменить ось:
df <-data.frame(age=c(10,10,20,20,25,25,25),veg=c(0,1,0,1,1,0,1),extra=c(10,10,20,20,25,25,90))
g=ggplot(data=df,aes(x=age,y=veg))
g=g+stat_summary(fun.y=mean,geom="point")
g
затем
a<-g+coord_cartesian(xlim=c(0,100))
a+geom_point(data=df,aes(x=extra,y=veg))
Будет ли это достаточно хорошо? Он рассматривает верхнюю границу ylim как переменную, но технически вы бы знали ylim перед добавлением очков:
my.data <- seq(0,5)
my.points <- seq(5,9)
plot(my.data, ylim=c(0,max(my.data,my.points)))
points(my.points)
Вы также можете относиться к нижней границе илим таким же образом:
my.data <- seq(0,5)
my.points <- seq(5,9)
plot(my.data, ylim=c(min(my.data,my.points),max(my.data,my.points)))
points(my.points)