声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3394|回复: 8

[绘图技巧] 分割colorbar 请各位高手帮忙

[复制链接]
发表于 2009-11-28 10:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问各位高手谁知道colorbar的数值区域设定和颜色指定是怎么实现的。
最后结果图如附件中所示,不是我们一般见的整体的bar,而是具体有值域。
小弟在这里跪谢了!:handshake Understanding supply chain dynamics a chaos perspective.jpg
回复
分享到:

使用道具 举报

发表于 2009-11-28 20:55 | 显示全部楼层
doc colorbar
 楼主| 发表于 2009-11-28 22:00 | 显示全部楼层

回复 沙发 sogooda 的帖子

doc colorbar  能看的我都看了,我真的愚笨,没见过那种的。
还请各位高手提点,谢谢
发表于 2009-11-28 22:32 | 显示全部楼层
colorbar的确没这种格式! 仅有legend中有点像, 但其无针对pcolor/imagesc/...的功能! 所以个人认知仅能自己慢慢贴了!
LZ在中文的帖, 昨晚刚好有看到, 我早上搜了下官网看看是否有现成, 但没找着!
只看到这个类似
http://www.mathworks.com/matlabc ... ange/17748-windrose
它是利用fill/text慢慢贴了!
 楼主| 发表于 2009-11-29 19:08 | 显示全部楼层

回复 地板 ChaChing 的帖子

非常感谢终于有高人回复了。但是我真的对Matlab不是很了解。下面是我的程序,看起来很简单的,但还是在论坛上泡很长时间的成果,我想主任能不能在我的程序上稍微举个例子演示下什么是“利用fill/text慢慢贴”,然后我再慢慢虚心学习,了解,真的非常感谢。:handshake
Z =[     0         0         0
    0.0500         0    0.0150
    0.1000         0         0
    0.1500         0         0
    0.2000         0         0
    0.2500         0         0
    0.3000         0    0.0009
    0.3500         0   -0.0088
    0.4000         0   -0.0382
    0.4500         0    0.5676
    0.5000         0   -0.0013
    0.5500         0    0.0044
    0.6000         0    1.1866
    0.6500         0    0.0019
    0.7000         0    0.0002
    0.7500         0    0.0002
    0.8000         0   -0.0007
    0.8500         0   -0.0045
    0.9000         0   -0.0016
    0.9500         0   -0.0007
    1.0000         0    0.0020
    0.0500    0.0500    0.0251
    0.1000    0.0500         0
    0.1500    0.0500         0
    0.2000    0.0500         0
    0.2500    0.0500         0
    0.3000    0.0500         0
    0.3500    0.0500         0
    0.4000    0.0500   -0.0031
    0.4500    0.0500   -0.0315
    0.5000    0.0500    0.0009
    0.5500    0.0500    0.0010
    0.6000    0.0500   -0.0017
    0.6500    0.0500    0.0674
    0.7000    0.0500    0.6907
    0.7500    0.0500   -0.0018
    0.8000    0.0500    0.0008
    0.8500    0.0500   -0.0014
    0.9000    0.0500    0.2419
    0.9500    0.0500   -0.0010
    1.0000    0.0500    0.0031
    0.1000    0.1000         0
    0.1500    0.1000         0
    0.2000    0.1000         0
    0.2500    0.1000    0.0009
    0.3000    0.1000    0.0011
    0.3500    0.1000    0.0011
    0.4000    0.1000         0
    0.4500    0.1000    0.0154
    0.5000    0.1000   -0.0173
    0.5500    0.1000    1.1401
    0.6000    0.1000    0.5123
    0.6500    0.1000   -0.0076
    0.7000    0.1000    0.0000
    0.7500    0.1000    0.1003
    0.8000    0.1000    0.2953
    0.8500    0.1000    0.0066
    0.9000    0.1000   -0.0013
    0.9500    0.1000   -0.0014
    1.0000    0.1000    0.0032
    0.1500    0.1500         0
    0.2000    0.1500         0
    0.2500    0.1500         0
    0.3000    0.1500         0
    0.3500    0.1500         0
    0.4000    0.1500         0
    0.4500    0.1500         0
    0.5000    0.1500    0.0093
    0.5500    0.1500    0.0357
    0.6000    0.1500   -0.0340
    0.6500    0.1500    0.3540
    0.7000    0.1500    0.0009
    0.7500    0.1500    0.0022
    0.8000    0.1500    0.0004
    0.8500    0.1500    0.2277
    0.9000    0.1500    0.9413
    0.9500    0.1500    0.0025
    1.0000    0.1500    0.4200
    0.2000    0.2000         0
    0.2500    0.2000         0
    0.3000    0.2000         0
    0.3500    0.2000         0
    0.4000    0.2000         0
    0.4500    0.2000         0
    0.5000    0.2000         0
    0.5500    0.2000    0.0014
    0.6000    0.2000    0.0299
    0.6500    0.2000   -0.0262
    0.7000    0.2000   -0.0220
    0.7500    0.2000    0.0004
    0.8000    0.2000    0.1074
    0.8500    0.2000    0.0002
    0.9000    0.2000   -0.0004
    0.9500    0.2000    0.0167
    1.0000    0.2000   -0.0014
    0.2500    0.2500         0
    0.3000    0.2500         0
    0.3500    0.2500         0
    0.4000    0.2500         0
    0.4500    0.2500         0
    0.5000    0.2500         0
    0.5500    0.2500         0
    0.6000    0.2500         0
    0.6500    0.2500   -0.0031
    0.7000    0.2500   -0.0150
    0.7500    0.2500   -0.0356
    0.8000    0.2500   -0.0081
    0.8500    0.2500    0.0023
    0.9000    0.2500   -0.0002
    0.9500    0.2500   -0.0001
    1.0000    0.2500    0.0014
    0.3000    0.3000         0
    0.3500    0.3000    0.0009
    0.4000    0.3000    0.0009
    0.4500    0.3000    0.0009
    0.5000    0.3000         0
    0.5500    0.3000    0.0009
    0.6000    0.3000    0.0009
    0.6500    0.3000         0
    0.7000    0.3000    0.0003
    0.7500    0.3000    0.2185
    0.8000    0.3000   -0.0284
    0.8500    0.3000   -0.0052
    0.9000    0.3000    0.0007
    0.9500    0.3000   -0.0050
    1.0000    0.3000    0.0007
    0.3500    0.3500    0.0009
    0.4000    0.3500    0.0008
    0.4500    0.3500    0.0009
    0.5000    0.3500    0.0009
    0.5500    0.3500    0.0009
    0.6000    0.3500    0.0009
    0.6500    0.3500    0.0009
    0.7000    0.3500    0.0009
    0.7500    0.3500    0.0009
    0.8000    0.3500   -0.0233
    0.8500    0.3500    1.2701
    0.9000    0.3500   -0.0351
    0.9500    0.3500    0.0036
    1.0000    0.3500    0.0015
    0.4000    0.4000         0
    0.4500    0.4000         0
    0.5000    0.4000         0
    0.5500    0.4000         0
    0.6000    0.4000         0
    0.6500    0.4000         0
    0.7000    0.4000         0
    0.7500    0.4000         0
    0.8000    0.4000         0
    0.8500    0.4000    0.0176
    0.9000    0.4000   -0.0395
    0.9500    0.4000    0.6641
    1.0000    0.4000   -0.0049
    0.4500    0.4500    0.0009
    0.5000    0.4500    0.0010
    0.5500    0.4500    0.0008
    0.6000    0.4500    0.0009
    0.6500    0.4500    0.0009
    0.7000    0.4500    0.0009
    0.7500    0.4500    0.0009
    0.8000    0.4500    0.0009
    0.8500    0.4500         0
    0.9000    0.4500    0.0006
    0.9500    0.4500    0.0089
    1.0000    0.4500    1.1503
    0.5000    0.5000         0
    0.5500    0.5000         0
    0.6000    0.5000         0
    0.6500    0.5000         0
    0.7000    0.5000         0
    0.7500    0.5000         0
    0.8000    0.5000         0
    0.8500    0.5000         0
    0.9000    0.5000         0
    0.9500    0.5000    0.0065
    1.0000    0.5000    0.0212
    0.5500    0.5500    0.0010
    0.6000    0.5500    0.0009
    0.6500    0.5500    0.0008
    0.7000    0.5500    0.0009
    0.7500    0.5500    0.0008
    0.8000    0.5500    0.0009
    0.8500    0.5500    0.0009
    0.9000    0.5500    0.0009
    0.9500    0.5500    0.0009
    1.0000    0.5500    0.0009
    0.6000    0.6000    0.0009
    0.6500    0.6000         0
    0.7000    0.6000    0.0008
    0.7500    0.6000    0.0008
    0.8000    0.6000    0.0008
    0.8500    0.6000    0.0009
    0.9000    0.6000    0.0009
    0.9500    0.6000    0.0008
    1.0000    0.6000    0.0008
    0.6500    0.6500         0
    0.7000    0.6500         0
    0.7500    0.6500    0.0009
    0.8000    0.6500         0
    0.8500    0.6500    0.0008
    0.9000    0.6500         0
    0.9500    0.6500         0
    1.0000    0.6500         0
    0.7000    0.7000         0
    0.7500    0.7000    0.0009
    0.8000    0.7000         0
    0.8500    0.7000    0.0008
    0.9000    0.7000    0.0009
    0.9500    0.7000         0
    1.0000    0.7000    0.0009
    0.7500    0.7500         0
    0.8000    0.7500    0.0010
    0.8500    0.7500         0
    0.9000    0.7500    0.0009
    0.9500    0.7500         0
    1.0000    0.7500         0
    0.8000    0.8000         0
    0.8500    0.8000         0
    0.9000    0.8000         0
    0.9500    0.8000         0
    1.0000    0.8000    0.0009
    0.8500    0.8500    0.0009
    0.9000    0.8500    0.0009
    0.9500    0.8500         0
    1.0000    0.8500         0
    0.9000    0.9000    0.0009
    0.9500    0.9000         0
    1.0000    0.9000    0.0011
    0.9500    0.9500    0.0009
    1.0000    0.9500    0.0009
    1.0000    1.0000         0];
   
  x=Z(:,1);
  y=Z(:,2);
  z=Z(:,3);

bb=0:0.001:1; [X,Y]=meshgrid(bb,bb);
L=griddata(x,y,z,X,Y,'cubic');
pcolor(X,Y,L);
shading interp;
caxis([-1 1.5]);
colorbar
colormapeditor
title('lyapunov exponent-InventoryRate-SLRate图')
xlabel('InventoryRate'),ylabel('SLRate'),zlabel('lyapunov_exponent')
 楼主| 发表于 2009-11-29 19:11 | 显示全部楼层

回复 地板 ChaChing 的帖子

至少能把 矩阵的第三列 z>0,z=0,z<0 的三种情况 分别用不同的颜色区分开来,谢谢:@)
发表于 2009-12-1 11:57 | 显示全部楼层

回复 6楼 zebtra_stripe 的帖子

大约就是这个样, 一些参数慢慢调至LZ要的, 苦功!
  1. load Z; x=Z(:,1); y=Z(:,2); z=Z(:,3);

  2. axes('Position',[0.1 0.1 0.7 0.8]);
  3. bb=0:0.001:1; [X,Y]=meshgrid(bb,bb);
  4. L=griddata(x,y,z,X,Y,'cubic');
  5. pcolor(X,Y,L); shading interp; caxis([-1 1.5]); % colorbar; colormapeditor
  6. title('lyapunov exponent-InventoryRate-SLRate?')
  7. xlabel('InventoryRate'),ylabel('SLRate'),zlabel('lyapunov_exponent')

  8. cmap=colormap;
  9. hh=axes('Position',[0.85 0.1 0.1 0.8],'box','off', 'Color','none');
  10. fill([0.1 0.4 0.4 0.1],[0.1 0.1 0.2 0.2],cmap(end,:)); text(0.5,0.15,'High');
  11. axis([0 1 0 1]); hold on
  12. fill([0.1 0.4 0.4 0.1],[0.3 0.3 0.4 0.4],cmap(1,:)); text(0.5,0.35,'Low');
  13. set(hh,'Xticklabel',[],'yticklabel',[],'Xtick',[],'ytick',[]);
复制代码

[ 本帖最后由 ChaChing 于 2009-12-1 11:58 编辑 ]
 楼主| 发表于 2009-12-1 13:49 | 显示全部楼层

回复 7楼 ChaChing 的帖子

首先非常非常非常感谢ChaChing的帮助,大好人:@)
试运行了一下,看来确实是苦功了。汗
不过我还有两点疑问,恕我愚昧,还请指教。
1、colorbar中的颜色怎样和图像中的颜色联系起来?
2、fill([0.1 0.4 0.4 0.1],[0.1 0.1 0.2 0.2],cmap(end,:)); 这句话的含义是?(我看了help fill,可惜没看懂)
谢谢了。
附上试运行的结果,colorbar的颜色怎么没有见在图像中有显示?

[ 本帖最后由 ChaChing 于 2009-12-1 20:32 编辑 ]
untitled.jpg
发表于 2009-12-1 20:30 | 显示全部楼层

回复 8楼 zebtra_stripe 的帖子

因为LZ原来有使用caxis, 所以最大/最小的颜色在图像中没有显示
懒得去找最大值对应的颜色, 所以直接取cmap的头尾, 试试注解掉caxis:@)
fill(X,Y,C), 四个corner的x/y座标及颜色

[ 本帖最后由 ChaChing 于 2009-12-1 20:33 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 21:24 , Processed in 0.104360 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表