2010-12-14 5 views
4

2つの曲線を比較したいのですが、Rを使用してプロットを描き、その上に別のプロットを描くことは可能ですか?どうやって ?同じウィンドウに1つまたは複数のプロットを描画します

ありがとうございました。

+1

(http://addictedtor.free.fr/graphiques/)それは良いの源でありますインスピレーションはコードと結果がそこにあります。 –

答えて

1

がベースR並み

> ?par 
> plot(rnorm(100)) 
> par(new=T) 
> plot(rnorm(100), col="red") 
5

を見てください、あなたは1つの曲線をプロットし、その後lines()引数と第2の曲線を追加することができます。ここでは簡単な例です:あなたはggplot2を使用したい場合は

また
x <- 1:10 
y <- x^2 
y2 <- x^3 

plot(x,y, type = "l") 
lines(x, y2, col = "red") 

、ここでは2つの方法です - 1は同じプロット上で異なる色をプロットし、もう一方は変数ごとに別々のプロットを生成します。ここでのトリックは、最初に長い形式にデータを「溶かす」ことです。

library(ggplot2) 

df <- data.frame(x, y, y2) 

df.m <- melt(df, id.var = "x") 

qplot(x, value, data = df.m, colour = variable, geom = "line") 

qplot(x, value, data = df.m, geom = "line")+ facet_wrap(~ variable) 
0

matplot関数で複数の曲線を同時に描画します。もっと助けてください(matplot)。 lattice packageを使用して

4

require(lattice) 
x <- seq(-3,3,length.out=101) 
xyplot(dnorm(x) + sin(x) + cos(x) ~ x, type = "l") 

Lattice curve plot

+0

格子を使用するための+1 –

2

あなたのため、すでにいくつかの解決策が行われています。基本パッケージにとどまっている場合は、関数を知っておくべきです。plot(), lines(), abline(), points(), polygon(), segments(), rect(), box(), arrows(), ...ヘルプファイルを見てください。

ベースパッケージからのプロットが、指定した座標の枠として表示されます。このペインでは、上記の関数を使用してオブジェクト全体を描画できます。彼らはあなたが望むようにグラフを構築することを可能にします。しかし、G博士のようなパーの設定でプレイしない限り、plot()を呼び出すたびに新しいペインが得られます。また、物事が他のものよりもプロットできることも考慮して、物をプロットするために使用する順序について考えてください。

を参照してください例:

set.seed(100) 
x <- 1:10 
y <- x^2 
y2 <- x^3 
yse <- abs(runif(10,2,4)) 

plot(x,y, type = "n") # type="n" only plots the pane, no curves or points. 

# plots the area between both curves 
polygon(c(x,sort(x,decreasing=T)),c(y,sort(y2,decreasing=T)),col="grey") 
# plot both curves 
lines(x,y,col="purple") 
lines(x, y2, col = "red") 
# add the points to the first curve 
points(x, y, col = "black") 
# adds some lines indicating the standard error 
segments(x,y,x,y+yse,col="blue") 
# adds some flags indicating the standard error 
arrows(x,y,x,y-yse,angle=90,length=0.1,col="darkgreen") 

これはあなたを与える:

alt text

1

ggplot2は、この種のもののための素晴らしいパッケージです:

install.packages('ggplot2') 
require(ggplot2) 
x <- 1:10 
y1 <- x^2 
y2 <- x^3 
df <- data.frame(x = x, curve1 = y1, curve2 = y2) 
df.m <- melt(df, id.vars = 'x', variable_name = 'curve') 
# now df.m is a data frame with columns 'x', 'curve', 'value' 
ggplot(df.m, aes(x,value)) + geom_line(aes(colour = curve)) + 
geom_point(aes(shape=curve)) 

あなたが色のプロットを取得カーブごとに、そしてそれぞれのカーブごとに異なるピオーネ・マークで、素晴らしい伝説があります。すべての痛みを伴わずに、追加の作業をせずに:あなたはより多くの例をしたい場合は、Rグラフライブラリを見てみる必要があります

alt text

+0

あなたのコードは現在の形式では実行されません。あなたは 'ggplot'の最初の呼び出しの後で括弧を欠いていて、間違ったオブジェクトを参照しています。 ' ggplot(df.m、aes(x、value))+ geom_line(aes(color = curve))+ geom_point(エース(形状=曲線))' – Chase

+0

ありがとうございました。汚れ。 –

関連する問題