matlab 您所在的位置:网站首页 matlab里的subplot函数 matlab

matlab

2023-12-29 22:55| 来源: 网络整理| 查看: 265

  用subplot命令画出多个图后,需要让这些图共用一个colorbar。在这里与大家分享我的操作,希望能帮助到有需要的人。   (备注:从 R2019b 开始,可以在分块图布局中显示共享颜色栏,无需使用此方法。)

  subplot绘图后,在最后添加一个colorbar命令会导致最后一个子图变小。针对此情况,可以获取colorbar在fig中的位置,并给colorbar重新赋值。

  此外,如果需要对子图的位置和大小进行微调,也可以用同样的方法。需要注意的是:重置的subplot子图位置要恰当,不能相互干扰,否则会丢失子图。

一:代码 % 特别注意,重置的subplot位置不能相互干扰,否则会丢失子图。 clear clc Sub1 = subplot(1,3,1); plot(magic(5)) Position_Sub1 = get(Sub1, 'Position') % 获取第一个子图的位置[x,y,width,height] % 四个值分别是用百分比表示的该子图的左下角的x、y的坐标、宽、高所占的比例 Position_Sub1 = Position_Sub1 + [-0.05 0 0 0 ] % 设定第一个子图向左移动 set(Sub1, 'Position',Position_Sub1) % 重置第一个子图的位置 Sub2 = subplot(1,3,2); plot(magic(5)) Position_Sub2 = get(Sub2, 'Position') % 获取第二个子图的位置[x,y,width,height] % 四个值分别是用百分比表示的该子图的左下角的x、y的坐标、宽、高所占的比例 Position_Sub2 = Position_Sub2 + [-0.05 0 0 0 ] % 设定第二个子图向左移动 set(Sub2, 'Position',Position_Sub2) % 重置第二个子图的位置 Sub3 = subplot(1,3,3); plot(magic(5)) Position_Sub3 = get(Sub3, 'Position') % 获取第三个子图的位置[x,y,width,height] % 四个值分别是用百分比表示的该子图的左下角的x、y的坐标、宽、高所占的比例 Position_Sub3 = Position_Sub3 + [-0.05 0 0 0 ] % 设定第三个子图向左移动 set(Sub3, 'Position',Position_Sub3) % 重置第三个子图的位置 colorbar('eastoutside'); hBar = colorbar; Position_Bar = get(hBar, 'Position') % 获取colorbar位置[x,y,width,height],其中,x表示colorbar的左下角与figure左边界的距离占figure宽度的百分比; % y表示colorbar的左下角与figure下边界的距离占figure高度的百分比;width表示colorbar的宽度占figure宽度的百分比; % height表示colorbar的高度占figure高度的百分比。 Position_Bar = Position_Bar + [0.12 0 0 0 ] % 设定colorbar向右移动 set(hBar, 'Position',Position_Bar) % 重置colorbar的位置 get(hBar, 'Position')

二:测试结果

原图

图1 无任何设置时 设置colorbar的位置并微调子图的位置 图2 设置colorbar位置并微调子图位置

三:参考链接

链接1:如何给subplot添加总的colorbar. 链接2:MATLAB中关于subplot和colorbar 位置的一些小技巧. 链接3:matlab笔记——subplot多个子图共用一个colorbar.



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有