当绘制图形时是否可以改变ylim和xlim?

问题描述 投票:14回答:4

例如,如果我要绘制一个具有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)) 

像这样可能吗?

r plot limit
4个回答
6
投票

(仅为完整性。)

几乎可以肯定,在R基本图形中这是不可能的。其他答案指出,它在ggplot中是可行的。 可能playwith包之类的东西中是可能的,尽管短时间的玩耍并没有向我展示这样做的方法。


3
投票

您可以在ggplot2中更改轴限制。例如,

require(ggplot2)
data(mpg) 

g = ggplot(mpg, aes(cyl, cty)) + geom_point() + xlim(5, 8)
g
g + xlim(4,8)

正如本·博克(Ben Bolker)所提到的,在基本图形中,没有其他软件包,您绝对无法做到这一点。


3
投票

使用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))

3
投票

这够好吗?它将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)

您也可以用相同的方式处理ylim的下限:

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)
© www.soinside.com 2019 - 2024. All rights reserved.