编辑:从 R2020b(也许更早)开始,此问题已修复。
我想要一个一侧有热图,另一侧有一些条形图的图形。如您所见,我使用
uipanel
来保存热图和条形图。以下示例显示正确的数字,但我无法保存它。
该问题与条形图中的图例有关,但当我们不绘制热图时,问题就会消失。
当我保存图形时,出现以下错误:
Error using alternatePrintPath
Dimensions of arrays being concatenated are not consistent.
Error in alternatePrintPath
Error in print (line 83)
pj = alternatePrintPath(pj);
Error in saveas (line 181)
print( h, name, ['-d' dev{i}] )
Error in mre (line 18)
saveas(fig, 'test.png');
这是一个最小的可重现示例:
fig = figure;
heatmap_panel = uipanel('Position', [0, 0, .7, 1]);
heatmap_data = magic(10);
my_heatmap = heatmap(heatmap_panel, heatmap_data);
bars_panel = uipanel('Position', [.7, 0, .3, 1]);
subplot(2, 1, 1, 'Parent', bars_panel);
bar_data = [.2, .4, .4; .3, .3, .4]';
my_bar = bar(bar_data);
my_legend = legend({'group1', 'group2'});
saveas(fig, 'test.png');
这是一小部分 Matlab 版本中的错误,如类似问题中所述:如何在 for 循环中保存子图?