2016-09-29 5 views
1

私は20×40の行列を持っています。例えば、test <- matrix(1,20,40)です。画像に変換したいと思います。`image`は指定した範囲のマトリックスを表示していません

私はそれを直接表示する場合:

image(test) 

それは範囲[0,1] * [0,1]上に表示されます。私は範囲[90,110] * [180,220]に表示したい

enter image description here

ので、私は実行します。

image(test, xlim = c(90, 110), ylim = c(180, 220)) 

が、それは何も表示されません。

enter image description here

私が表示したいです画像を変更して軸の範囲を変更するにはどうしたらよいですか?

+0

'マトリックス(1,20,40)'マトリックスであなたに800 1のを提供します。これはあなたが望んだものですか?色1は白色である。 'image(matrix(seq(1,800)、20、40))'を試してみて、それが正しいパスに来るかどうか確認してください。 –

+0

申し訳ありませんが私の問題を明確にしていません。私は前に軸のスケールを変更したい。しかし、私はxlimとylimの使用に失敗しました。私はいつもそうしていると思っています。今私の問題は解決し、私は自分の誤りを知っている。とにかく、私はあなたの助けに感謝します。 – Youdi

答えて

0

ここでは誤解があります。 xlimylimしばらくxによって制御されてプロットされます行列、imagey引数は、場所を指定するために使用されている場合は、あなたがズームインされている場合、すなわち、見ている範囲。

あなたがxを指定しない場合image()yだけが行列testに渡すと、それが続行する

x = seq(0, 1, length = nrow(test)) 
y = seq(0, 1, length = ncol(test)) 

がかかります。したがって、行列は実際に[0,1] * [0,1]にプロットされています。 xlimylimをさらに指定しない場合は、image()にはxlim = range(x)ylim = range(y)が含まれているので、プロットしている場所を調べています。しかし、さらにxlim = c(90, 110)ylim = c(180, 220)と指定すると、マトリックスはまだ[0,1] * [0,1]になっていますが、何もない場合は[90, 110] * [180, 220]にズームしています。

行くための正しい方法は次のとおりです。

image(x = 90:110, y = 180:220, z = test) 

enter image description here

+0

ご協力いただきありがとうございます。私は本当にxlimとylimを誤解しました。私は彼らが以前に軸のスケールを変更するために使用されていると思った。今私はそれらを使用する方法と私の問題を解決する方法を知っています。 – Youdi

関連する問題