加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何修改pcolor图中colorbar的范围

(2013-05-22 21:11:28)
标签:

matlab

colorbar

it

分类: 解决方案

翻译自:http://www.mathworks.cn/support/solutions/en/data/1-4SZI19/index.html?product=ML&solution=1-4SZI19

 

如果用pcolor命令画了若干个图,但是他们的colorbar不一致,无法进行直观的比较,该如何调整呢?

C=rand(5);  % Create random values between 0 and 1

p=pcolor(C)  %画热度图
colorbar

得到下图:

http://s12/mw690/700aa883gdd4e808eb13b&690

与另外一个图

C= .25*rand(5) + .5; % Create random values between .375 and .625 for

p=pcolor(C)  %画热度图
colorbar

得到下图:

http://s7/mw690/700aa883gdd4e81e35f06&690

可以发现,两个图的colorbar不一致,图1的colorbar是从0-1,而图2的colorbar是从0.5到0.75,所以两个图不能进行直接的比较。解决办法有两个:

1、set(a, 'CLim', [0 1]);

2、caxis([0,1]);

 

  

示例代码

方案一:

For example:
% Plot # 1
figure(1);
a = axes;
C = rand(5); % Random values between 0 and 1 for Plot#1
p = pcolor(C); 
set(a, 'CLim', [0 1]); % CLim property is set for figure(1) before colobar
colorbar; % colorbar is set for figure(1)

% Clears the workspace
clear all;
clc;

% Plot # 2
figure(2);
a = axes;
C = .25*rand(5) + .5; % Create random values between .375 and .625 for Plot # 2 
p = pcolor(C); 
set(a, 'CLim', [0 1]); % CLim property is set for figure(2) before colobar 
colorbar; % colorbar is set for figure(2)

方案二:

 figure(1);

C = rand(5); % Random values between 0 and 1 for Plot#1
p = pcolor(C); 

caxis([0,1]);

colorbar

 

 

figure(2);
C = .25*rand(5) + .5; % Create random values between .375 and .625 for Plot # 2 
p = pcolor(C); 

caxis([0,1]);

colorbar

 

 

经过这样的草组,上面两个图就变为:

http://s10/mw690/700aa883gdd4e9cc672b9&690

 

 另外一篇博文关于,为何pcolor画出的格子不是5*5,而是4*4的博文在后续发表,见链接:

http://blog.sina.com.cn/s/blog_700aa8830101g75f.html

 

引用原文请注明地址:

http://blog.sina.com.cn/s/blog_700aa8830101g75b.html

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有