zebtra_stripe 发表于 2009-11-28 10:20

分割colorbar 请各位高手帮忙

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

sogooda 发表于 2009-11-28 20:55

doc colorbar

zebtra_stripe 发表于 2009-11-28 22:00

回复 沙发 sogooda 的帖子

doc colorbar能看的我都看了,我真的愚笨,没见过那种的。
还请各位高手提点,谢谢

ChaChing 发表于 2009-11-28 22:32

colorbar的确没这种格式! 仅有legend中有点像, 但其无针对pcolor/imagesc/...的功能! 所以个人认知仅能自己慢慢贴了!
LZ在中文的帖, 昨晚刚好有看到, 我早上搜了下官网看看是否有现成, 但没找着!
只看到这个类似
http://www.mathworks.com/matlabcentral/fileexchange/17748-windrose
它是利用fill/text慢慢贴了!

zebtra_stripe 发表于 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; =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')

zebtra_stripe 发表于 2009-11-29 19:11

回复 地板 ChaChing 的帖子

至少能把 矩阵的第三列 z>0,z=0,z<0 的三种情况 分别用不同的颜色区分开来,谢谢:@)

ChaChing 发表于 2009-12-1 11:57

回复 6楼 zebtra_stripe 的帖子

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

axes('Position',);
bb=0:0.001:1; =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')

cmap=colormap;
hh=axes('Position',,'box','off', 'Color','none');
fill(,,cmap(end,:)); text(0.5,0.15,'High');
axis(); hold on
fill(,,cmap(1,:)); text(0.5,0.35,'Low');
set(hh,'Xticklabel',[],'yticklabel',[],'Xtick',[],'ytick',[]);

[ 本帖最后由 ChaChing 于 2009-12-1 11:58 编辑 ]

zebtra_stripe 发表于 2009-12-1 13:49

回复 7楼 ChaChing 的帖子

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

[ 本帖最后由 ChaChing 于 2009-12-1 20:32 编辑 ]

ChaChing 发表于 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 编辑 ]
页: [1]
查看完整版本: 分割colorbar 请各位高手帮忙