3

I am new to R, and have previously used MATLAB. I am converting a MATLAB script to operate under R. So far so good except now to plot the output graph.

MATLAB

Here is the matlab code for plotting the graph, using imagesc:

imagesc(velocity,time,myplot,[-35, 0]);

Where:

velocity: 1 x 50 matrix

time: 1 x 10 matrix

myplot: 10 x 50 matrix

Explanation of Imagesc

More details can be found here

imagesc(x,y,C) displays C as an image and specifies the bounds of the x- and y-axis with vectors x and y. If x(1) > x(2) or y(1) > y(2), the image is flipped left-right or up-down, respectively. If x and y are scalars, the image is translated to the specified location (x,y) such that the upper left corner of the image starts at (x,y).

R

R's version of imagesc which can be found here

The Question:

How can I reproduce the data value to colormap value in the Matlab clims section, found here: http://i.imgur.com/eVy6V8N.png, which is the [-35, 0] part of the Matlab example.

It maps data values outside of a particular range to the same color limit, effectively acting as a filter for noise on the image.

Here is the result of Matlab and R imagesc function without the [-35, 0] clims section: http://i.imgur.com/DzDjrzu.png

As you can see they are identical.

Here is the desired result, with Matlab [-35, 0] section included: http://i.imgur.com/Qbx6jNI.png

Matlab of left and R on the right. The left Matlab image is what I want to produce, and it's all due to that one process clims [-35, 0] on the Matlab version of the script.

4

2 に答える 2

1

image質問とリンクされた資料、および Google で見つかったその他の資料を読むと、R のとaxis関数の合計容量が必要になります。他の資料の中には、imagesc実際には軸の注釈のみを再ラベル付けするだけであると述べたものがあります。(そして、あなたが要求していないように見える追加のカラースケーリング容量があります。)ファイルから画像を読み取るには、いくつかの追加のパッケージが必要になる場合があります。grImportpdf の便利な機能を備えたパッケージがあります。特定のフォーマットに特化したパッケージもあります。tiffまたはrtiff。プロットするモード サイズの行列がある場合は、 を提供する必要がありますdput(mat)。例がなく、特定の指示がない場合は、 の例セクションの真ん中にある例の適応を提供できます?image

> image(t(volcano)[ncol(volcano):1,])   # the default axes lebeling

 image(t(volcano)[ncol(volcano):1,], axes=FALSE)
 axis(1, at=seq(0,1,.1), labels= seq(0,100,10) )
 axis(2, at=seq(0,1,.1), labels= rev( seq(0,100,10)) )

ここに画像の説明を入力

于 2013-06-05T10:57:09.283 に答える