比如说,如果我想绘制一个带有点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),我不能事先设置ylim和xlim。我希望能够像下面这样做(这种方式不起作用):
plot(c(1,2,3,4,5))
points(c(5,6,7,8,9), ylim=c(0,10))
这种情况是否可能?
比如说,如果我想绘制一个带有点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),我不能事先设置ylim和xlim。我希望能够像下面这样做(这种方式不起作用):
plot(c(1,2,3,4,5))
points(c(5,6,7,8,9), ylim=c(0,10))
这种情况是否可能?
您可以在ggplot2中更改坐标轴限制。例如,
require(ggplot2)
data(mpg)
g = ggplot(mpg, aes(cyl, cty)) + geom_point() + xlim(5, 8)
g
g + xlim(4,8)
这个是否足够好呢?将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)
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))