web-dev-qa-db-ja.com

プロットが既に描かれているときに、ylimとxlimを変更することはできますか?

例として、ポイント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)) 

このようなことは可能ですか?

13
Niek de Klein

(完全を期すためです。)

これは、Rベースのグラフィックではほぼ確実に不可能です。他の回答は、ggplotで実行可能であると指摘しています。それはmightplaywithパッケージのようなもので可能ですが、少し遊んでみただけでは、その方法はわかりませんでした。

6
Ben Bolker

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
user1317221_G

これで十分でしょうか? 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)
3
Mark Miller

Ggplot2で軸の範囲を変更できます。例えば、

require(ggplot2)
data(mpg) 

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

Ben Bolkerが述べているように、基本グラフィックスでは、追加のパッケージなしでは絶対にそれを行うことはできません。

3
csgillespie