爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: abd

[秀图] [求助]Matlab中怎么做自定义色图(colormap)?

[复制链接]

新浪微博达人勋

发表于 2012-6-4 13:31:20 | 显示全部楼层
首先你画图肯定要用到数据文件 根据这个文件做循环 读数据 然后和FORTRAN编程一样 用if语句判断回波值取值范围 然后在这个范围里的你就将颜色定义成你要的颜色就可以了 其实很简单 你可以参考我下面的这段语句 **注意 我这只是一层的回波
figure(9)
axis([-460 460 -460 460])
hold on
Ref=load('E:\mdraw\allselected5\200806230548.txt');
for theta=1:360
for buchang=1:460
if Ref(theta,buchang)>=0&&Ref(theta,buchang)<10
color(theta,buchang,1)=1;
color(theta,buchang,2)=1;
color(theta,buchang,3)=1;
end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2012-6-4 15:16:04 | 显示全部楼层
本帖最后由 abd 于 2012-6-4 16:42 编辑

我非常高兴你给我回了这么多,我已经画出来的图如下: le.jpg

我把色标弄上去了,但是对应的值就不匹配,也就是数值它随便表上去的,有没有办法呀?我的那一段画图的matlab程序为:
mm=[180/255  ,  199/255  ,  255/255
95/255  ,  135/255  ,  255/255
20/255  ,  71/255  ,  222/255
.......
.......
155/255 , 0/255 , 250/255]
     colormap(mm)
        contourf(AA(:,:,i));
        axis([0 701 0 701])
       caxis([5 65]);
    %   caxis manual
     map=colormap;
        colorbar;

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-4 16:11:44 | 显示全部楼层
加上这个试试
pcolor(x(1:360,1:460),y(1:360,1:460),Ref(1:360,1:460))
shading interp;
别忘了读数据
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-4 16:15:06 | 显示全部楼层
后面加入这样的一段读数据程序 然后用pcolor调用你的colormap画图
Ref=load('E:\mdraw\smoothed\ss200606300759.txt');
colormap(mycolor);
for theta=1:360
for buchang=1:460
x(theta,buchang)=cos(theta/360*2*pi-pi/2)*buchang;
y(theta,buchang)=-buchang*sin(theta/360*2*pi-pi/2);
end
end

pcolor(x(1:360,1:460),y(1:360,1:460),Ref(1:360,1:460))
shading interp;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-6-7 11:06:07 | 显示全部楼层
本帖最后由 shadowcathy 于 2012-6-7 14:05 编辑

可以尝试做以下修改:

  1. contourf(AA(:,:,i),  5:5:65,  'LineStyle',  'none');

  2. colormap(mm)

  3. caxis([0, 70]);

  4. colorbar('YTick', 0:5:70, 'YTickLabel', ...
  5.     {' ', '5', '10', '15', '20', '25', '30', ...
  6.     '35', '40', '45', '50', '55', '60', '65', ' '});
复制代码

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-12-24 09:52:23 | 显示全部楼层
学习了...
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2016-5-16 12:40:42 | 显示全部楼层
abd 发表于 2012-6-4 15:16
我非常高兴你给我回了这么多,我已经画出来的图如下:

我把色标弄上去了,但是对应的值就不匹配,也就 ...

mycolor2=[255,255,255;192,192,192;128,128,128;255,192,192;224,160,160;192,128,128;128,255,128;0,192,0;255,255,0;192,192,0;255,0,0;192,0,0;128,0,0;0,255,255;0,0,255;0,0,128]/255.;
mycolor3=[0,186,253;111,248,253;0,150,50;0,220,0;180,255,180;196,166,0;255,255,0;238,255,0;255,0,0;255,100,100;255,180,180;150,0,180;200,100,155]/255.;

这个是“又是这只猫的”的原创,color2是经典的VIL色标,color3是经典的reflectivity色标,你可以试试。
看到你叠好了地图,比较好奇的是,如何把地图(我的是shp文件,画出来后横纵坐标分别为经纬度数)叠加到转成笛卡尔系后(画出来是以雷达所在点为中心,x,y范围均为[-Rm:Rm],Rm为460km)的反射率回波上呢?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-17 08:21:41 | 显示全部楼层
schliezer 发表于 2016-5-16 12:40
mycolor2=[255,255,255;192,192,192;128,128,128;255,192,192;224,160,160;192,128,128;128,255,128;0,19 ...

后来不用MATLAB,转NCL了,现在用NCL画的呢,不过还是非常感谢你哈!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-17 09:07:39 | 显示全部楼层
abd 发表于 2016-5-17 08:21
后来不用MATLAB,转NCL了,现在用NCL画的呢,不过还是非常感谢你哈!

不过还是想问下你是如何叠地图的?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-18 08:18:26 | 显示全部楼层
schliezer 发表于 2016-5-17 09:07
不过还是想问下你是如何叠地图的?

地图有专门的代码的
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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