matlab对于polygon.shp共用一个colorbar

【提醒】当图形比较多时,为了方便比较,需要共用一个colorbar。但如果不统一设置colorbar的上下界限,可能显示了共用,但实际“共用”的只是最后一个图的colorbar而已
  • 导入shp文件
  • 自定义colorbar
  • 分区上色
用 matlab 读shp文件,返回结构体变量 map = sheapread(‘path\xxx.shp’);

在这里插入图片描述

本例中的map

在这里插入图片描述

% 该程序用于产生shp文件的分区着色
%1)用 matlab 读shp文件,返回结构体变量
%        map = sheapread('path\xxx.shp');

load('newbb.mat')   % 这里为了分区显示,直接导入存储好的shp对应的结构体

H_f = figure(1)
set(gcf,'Color','w');
year=[2014,2015,2016,2017,2018];
for img=1:5 
    Hax = subplot(5,1,img);
    Haxeslist{img}=Hax;% 保存每个子图的句柄
    addr = ['HWHD_',num2str(year(img))]; % 这是个字符串,即需要画图的字段名称,本例中对应“HWHD_year”
    shpfile_style(map,addr);   
    set(gca,'Position',[0.1 1-0.165*img 0.75 0.14],'Visible','on');
end
    Hbig_axes = axes('Position',[0.23,0.175,0.5,0.80],'Visible','off'); % 这里为colorbar创建一个依附的坐标系,但不显示,目的是公用一个colorbar.
    Hbig_clb = colorbar;  % 这个启用时,整幅图公用一个colorbar
    

% 该子函数用于对导入matlab中的shp文件的作图风格进行调整;
% 输入变量:shp文件中需要作图的字段(index_val),类型为字符串,本例中对应“HWHD_Year”;
%           map为 map = sheapread('pathway\xxx.shp')返回的表示shp内容的结构体 
function shpfile_style(map,index_val)
        facecolor = rainbow(10);   % rainbow(10)表示风格为“rainbow”的色阶,等分为10层
        range = [0,1];             % [0,1]为图例上下界限
        style = makesymbolspec('Polygon',{index_val, range,'FaceColor',facecolor});
        %  上式中,Polygon表示shp文件中的面元素,当然也可以为“Point”,“Polyline”,“Point”等,为“Polyline”时,对应'Color'.
        mapshow(map,'SymbolSpec',style)   % 以设定的风格显示shp文件
        set(gca,'Visible','on')
        box on; grid on
%           colorbar(); % 这个启用时,每幅图都会显示colorbar
        colormap(facecolor);
        caxis(range);

        % 在图中添加文本(这部分非作图中必须,可忽略)
        fontsize = 8; % 文本字体大小
        text(112,23.5,'肇庆','FontSize',fontsize) % text(x,y,txt),其中x,y表示坐标位置;
        text(112.5,22.2,'江门','FontSize',fontsize) 
        text(112.9,23,'佛山','FontSize',fontsize) 
        text(113.3,22.5,'中山','FontSize',fontsize) 
        text(113.1,22.2,'珠海','FontSize',fontsize) 
        text(113.4,23.3,'广州','FontSize',fontsize) 
        text(113.7,22.9,'东莞','FontSize',fontsize) 
        text(113.9,22.6,'深圳','FontSize',fontsize) 
        text(114.3,23.1,'惠州','FontSize',fontsize)
        text(114,21.7,[index_val(1:4),' ',index_val(6:9)],'FontSize',14)
end

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值