matlab中contour和contourf函数同时使用出现问题

我在一张图的左侧用contourf作图,然后用另一组数据,在右侧用contour作图,结果左侧图的颜色发生了变化,与colormap不对应了,请问该如何解决?... 我在一张图的左侧用contourf作图,然后用另一组数据,在右侧用contour作图,结果左侧图的颜色发生了变化,与colormap不对应了,请问该如何解决? 展开
 我来答
dukinkin
2014-12-05 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:889万
展开全部
一个figure里面只能用同一个colormap
用subplot可以在一个figure中画几个小图
但是它们是共享一个colormap的
但是它们是对应的颜色影射的范围是根据各自不同数据而定的

如果两个图的数据的范围不一致,那么这两个图中相同的颜色所表示的数值是不同的
如果在两个图都画完之后,在figure中添加colorbar,
那么这个colorbar只是表示后面一张图的颜色影射关系
如果两图数据范围不一样,那么这个colorbar是不能和第一副图对应的

subplot(121),contourf(...);colorbar
subplot(122),contour(...);colorbar

这样可以为两个图画出各自的颜色影射关系,应该看出是不一样的

如果需要这个figure里面的两幅图有相同的颜色影射关系
可以在画图之后加两句

h=get(gcf,'children');
set(h,'CLim',[minv maxv]);
这里的minv和maxv是你需要用颜色表示的最小值和最大值
一般最小值取你左右两图数据的最小,最大值取你两图数据的最大
那么左右两图颜色影射关系就一样,同样的颜色在两图中表示的数值相同

但是要记住一个figure里只有一个colormap
如果你在画第一副图是用了一种colormap,而画第二幅图时改变一个colormap
那么第一幅图的颜色也会因此而改变
不能用简单的办法让subplot中的各个图使用不同的colormap
Eunic颜xy
2014-12-05 · TA获得超过6951个赞
知道小有建树答主
回答量:1598
采纳率:0%
帮助的人:782万
展开全部
我的解决办法是:对于你用contour画的那个等值线,用contourc先求出等值线(xy坐标)来,然后用plot命令再把等值线画上去。
追问
我想用Z=contour(xx3,yy3,stream_v,40,'k')命令取出流函数的坐标,然后按照你的方法用plot画图;其效果应该类似于contourc命令。可是取出来的Z有两行N列,数据有点乱,不知道如何正确提取出数据坐标,请问该如何做?PS: 我的数据本身是非均匀网格。

此外,1楼的回答已经解决了我的问题。这里是想知道如何提取出contour后的具体数据。

多谢!
我想用Z=contour(xx3,yy3,stream_v,40,'k')命令取出流函数的坐标,然后按照你的方法用plot画图;其效果应该类似于contourc命令。可是取出来的Z有两行N列,数据有点乱,不知道如何正确提取出数据坐标,请问该如何做?PS: 我的数据本身是非均匀网格。

此外,1楼的回答已经解决了我的问题。这里是想知道如何提取出contour后的具体数据。

多谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式