在Matlab中切割多行标题

时间:2017-05-24 07:06:18

标签: matlab matlab-figure

我正在使用单元格数组来显示多行标题。它有时不能很好地工作,不明白为什么。我正在使用subplot来定义我的轴;

这是我的代码。前两个子图很好但第三个标题是剪切的,它只显示最后两个项(C和D字符串)。

hf = figure;
subplot( 2, 2, 1 );
title({'test1', 'test2','test3', 'test4'});
subplot( 2, 2, 3 );
title({'testA', 'testB','testC', 'testD'});
subplot( 1, 2, 2 );
title({'A', 'B','C', 'D'});

我做错了吗?

1 个答案:

答案 0 :(得分:1)

作为一种解决方法,我建议您执行以下操作:

sp3 = subplot(1,2,2);
title({'A', 'B','C', 'D'});
drawnow % force calculating the position *after* inserting the title
ph = sp3.Position; % get the desired position
sp3.delete % remove the axes
subplot( 2, 2, 1 );
title({'test1', 'test2','test3', 'test4'});
subplot( 2, 2, 3 );
title({'testA', 'testB','testC', 'testD'});
sp3 = subplot(1,2,2);
title({'A', 'B','C', 'D'});
sp3.Position = ph; % set the axes to the right hight

subplot_title

这个想法非常简单:

  1. 在图中单独放置轴,以便正确调整大小
  2. 获取他们的位置值
  3. 删除它们 - 这样它们就不会干扰其他轴
  4. 再次放置所有轴
  5. 将所有裁剪轴的位置设置为正确的值。
  6. 诀窍是使用drawnow,所以Matlab实际上会在你获得位置之前放置轴的所有部分,否则就会出错。