Can't save figure that contains subplots and a legend

11 次查看(过去 30 天)
I need a figure that uses most of the area for a heatmap, and then has subplots of bar graphs on the side. I am doing this by creating a uipanel for my heatmap, and then a smaller uipanel to hold all of the bar graphs. The following example shows the figure that I want, but when I save it I get the following error:
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');
The problem has something to do with the legend. Also, if we don't plot the heatmap, the error goes away. Here is the code. I am using R2019b.
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');

采纳的回答

Thomas Keefe
Thomas Keefe 2021-2-17
Mathworks fixed it in 2020b.
  1 个评论
raym
raym 2021-2-27
the problem is at heatmap, which is not a real figure object.
Even if a single heatmap image object cannot be saved by saveas

请先登录,再进行评论。

更多回答(1 个)

Sai Sri Pathuri
Sai Sri Pathuri 2020-2-28
I have brought this issue to the notice of our developers. They will investigate the matter further.
  3 个评论
Jaisav Bajoria
Jaisav Bajoria 2021-2-17
I have encountered a similar issue with 2019b. The same code seems to work for 2018b. As this is an internal function, I request MATLAB to suggest a solution. Thanks and appreciate it.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by