- 积分
- 27239
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2013-9-28
- 最后登录
- 1970-1-1
|
发表于 2017-11-7 20:24:38
|
显示全部楼层
不知道,楼主想要的图是什么效果,从楼主给的colorbar来看,刻度是不均匀的,在matlab里不好实现,这里采用的办法是把降水大小按要求分成几个等级,每个等级一个颜色,这个做出来的图效果是一样的。
以下为代码,由于没有地图文件,所以没有加底图。
data=load('data.txt');
data(14252,3)=nan;%发现有一个错误的降水数据,值为7.4728e+04
lat=data(:,1);
lon=data(:,2);
rain=data(:,3);
clear data
level0=find(rain==0);
level1=find(rain>0&rain<=0.1);
level2=find(rain>0.1&rain<=0.5);
level3=find(rain>0.5&rain<=1);
level4=find(rain>1&rain<=5);
level5=find(rain>5&rain<=10);
level6=find(rain>10);
rain(level0)=nan;
rain(level1)=1;
rain(level2)=2;
rain(level3)=3;
rain(level4)=4;
rain(level5)=5;
rain(level6)=6;
cmap=[255,255,255;0,255,3;0,255,253;0,0,254;255,253,6;249,2,255;254,0,2]/255;
figure
set(gcf,'position',[100 100 800 650])
scatter(lon,lat,10,rain,'fill')
set(gca,'fontsize',18,'linewidth',1.5,'box','on')
xlim([floor(min(lon))-1 floor(max(lon))+1])
ylim([floor(min(lat))-1 floor(max(lat))+1])
ylabel('Latitude')
xlabel('Longitude')
colormap(cmap)
cb=colorbar;
caxis([-0.5 6.5])
set(cb,'ytick',-0.5:1:6.5,'yticklabel',{'','0','0.1','0.5','1','5','10','15'})
|
-
|