我是R的新手,之前使用过MATLAB。我正在转换一个MATLAB脚本在R下运行。到目前为止,除了现在绘制输出图之外还好。
以下是使用imagesc
:
imagesc(velocity,time,myplot,[-35, 0]);
其中:
velocity
:1 x 50矩阵
time
:1 x 10矩阵
myplot
:10 x 50矩阵
imagesc(x,y,C)将C显示为图像,并使用向量x和y指定x轴和y轴的边界。如果x(1)> x(2)或y(1)> y(2),图像分别左右或上下翻转。如果x和y是标量,则图像将转换为指定位置(x,y),以使图像的左上角从(x,y)开始。
R的imagesc
which can be found here
如何在Matlab clims
部分中将数据值重现为colormap值,在此处找到:http://i.imgur.com/eVy6V8N.png,这是Matlab示例的[-35, 0]
部分。
它将特定范围之外的数据值映射到相同的颜色限制,有效地充当图像上噪声的过滤器。
以下是没有imagesc
攀登部分的Matlab和R [-35, 0]
函数的结果:http://i.imgur.com/DzDjrzu.png
正如你所看到的,它们完全相同。
这是期望的结果,其中包括:http://i.imgur.com/Qbx6jNI.png
的Matlab[-35, 0]
部分
左边的Matlab和右边的R.左边的Matlab图像是我想要生成的,而这完全归功于脚本的Matlab版本上的一个进程clims
[-35, 0]
。
答案 0 :(得分:2)
我认为您可以通过预处理数据获得与clims
相同的效果,以便将范围之外的值压缩到范围限制。
z = matrix(rnorm(10*10, sd=3), 10)
z2 <- z
z2[z2 > 3] <- 3
z2[z2 < -5] <- -5
# or simply
z2 = scales::squish(z, c(-5, 3))
filled.contour(z)
filled.contour(z2)
答案 1 :(得分:1)
当我阅读问题以及链接材料和Google发现的其他材料时,您需要R中image
和axis
函数的组合容量。其他一些材料说{ {1}}实际上只重新关联轴注释。 (并且它有一些额外的颜色缩放容量,你似乎没有请求。)从文件中读取图像可能需要一些额外的包。有一个imagesc
包,其中包含pdf的有用功能。还有专门用于特定格式的包,例如。 grImport
或tiff
。如果您要绘制模式大小的矩阵,则应提供rtiff
。在没有示例的情况下,特定方向可以在dput(mat)
的示例部分的中间提供此示例的修改。
?image