Несоответствие размеров Matlab при сохранении фигуры с тепловой картой и легендой? - PullRequest
0 голосов
/ 25 февраля 2020

Мне нужна фигура, у которой на одной стороне есть тепловая карта, а на другой стороне - несколько столбцов. Как вы видите, я использую uipanel s, чтобы держать карту тепла и графики. В следующем примере показывает правильную цифру, но я не могу сохранить ее.

Проблема связана с легендой на линейчатом графике, но проблема исчезает, когда мы не строим тепловую карту.

Когда я сохраняю рисунок, я получаю следующую ошибку:

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');
...