Redian新闻
>
如何在Matlab中在image上叠加contours?
avatar
如何在Matlab中在image上叠加contours?# Computation - 科学计算
m*t
1
【 以下文字转载自 Physics 讨论区 】
发信人: myjacket (马甲), 信区: Physics
标 题: 如何在Matlab中在image上叠加contours?
发信站: BBS 未名空间站 (Fri May 25 21:26:04 2007), 转信
不知道在哪问这个问题合适,列位在座的有类似的经验吗?
我的问题是不管先用image再用contour,或者是反过来,都不能同时
显示。尽管用了hold on让它们出到同一个figure上。郁闷。
先谢了。
avatar
j*n
2
没看太明白
hold on 不能?
猜测一下,你设置contour的颜色了?

【在 m******t 的大作中提到】
: 【 以下文字转载自 Physics 讨论区 】
: 发信人: myjacket (马甲), 信区: Physics
: 标 题: 如何在Matlab中在image上叠加contours?
: 发信站: BBS 未名空间站 (Fri May 25 21:26:04 2007), 转信
: 不知道在哪问这个问题合适,列位在座的有类似的经验吗?
: 我的问题是不管先用image再用contour,或者是反过来,都不能同时
: 显示。尽管用了hold on让它们出到同一个figure上。郁闷。
: 先谢了。

avatar
r*y
3
我碰到过类似的问题,不过不是image,也许我的方法对你有参考价值
基本原理,在matlab无论三维还是二维平面图,其handle都是三维的。
你先画一个图出来,然后将其handle里面的z坐标设到一个别的值; hold; 再
开始画 第二张图,如果第一张图是底图,那么第第二张的z比第二张的z大就行了。
还有一个问题,这个colormap的问题,两张图用不同的colormap在matlab
里面比较麻烦。我的poor man's approach就是做contour的时候记住它的handle,
handle.child里面有每个contour line的handle, 直接将这些contour line
人为赋予不同的颜色值或者相同的颜色值(根据你的需要而定)。
俺们这行经常画些恶复杂的图,底图是世界地图,然后用contour shading代表
一个变量,contour lines代表另外一个变量,带箭头的streamlines表示二维速度场。
这种时候matlab就很不照了,操作起来相当麻烦,呵呵。

【在 m******t 的大作中提到】
: 【 以下文字转载自 Physics 讨论区 】
: 发信人: myjacket (马甲), 信区: Physics
: 标 题: 如何在Matlab中在image上叠加contours?
: 发信站: BBS 未名空间站 (Fri May 25 21:26:04 2007), 转信
: 不知道在哪问这个问题合适,列位在座的有类似的经验吗?
: 我的问题是不管先用image再用contour,或者是反过来,都不能同时
: 显示。尽管用了hold on让它们出到同一个figure上。郁闷。
: 先谢了。

avatar
i*g
4
contour的线是画在z=0的面上的,低于你的image的z值
给contour加上一个较大的值,将z值抬升高过image可能可以解决

【在 m******t 的大作中提到】
: 【 以下文字转载自 Physics 讨论区 】
: 发信人: myjacket (马甲), 信区: Physics
: 标 题: 如何在Matlab中在image上叠加contours?
: 发信站: BBS 未名空间站 (Fri May 25 21:26:04 2007), 转信
: 不知道在哪问这个问题合适,列位在座的有类似的经验吗?
: 我的问题是不管先用image再用contour,或者是反过来,都不能同时
: 显示。尽管用了hold on让它们出到同一个figure上。郁闷。
: 先谢了。

avatar
r*y
5
//hand, 所见略同。

【在 i**g 的大作中提到】
: contour的线是画在z=0的面上的,低于你的image的z值
: 给contour加上一个较大的值,将z值抬升高过image可能可以解决

avatar
m*t
6
谢谢如此详细的解释。
可是,琢磨半天,仍不得要领:如何改z值?
我要做的是:
1) imagesc(x,y,my 2D image array);
然后有一个同样大小的2D的数值array对应于上面的image。
我用如下操作:
2)hold on;
contour(x,y,my 2D value array);
然后得到的figure只显示contours,image被覆盖了。用plot browser
可以看到两个objects。关掉任何一个可以看到另一个。可是就是不能同时
显示。
怎么办?

代表

【在 r****y 的大作中提到】
: //hand, 所见略同。
avatar
a*a
7
change step 2) to:
2)hold on;
contour(x,y,my 2D value array,'r', 'linewidth',2);
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。