首页 > 解决方案 > 无法在matlab中的条形图上方放置图像

问题描述

我正在尝试在同一图中的条形图上方打印图像,使用带有 OuterPosition 选项的 set 命令手动更改它们的位置。

这仅在图像的垂直坐标至少为 0.42 时才有效,事实上,如果它低于此值,则图像会消失。

如何将图像置于 0.42 以下?

subplot(2,1,1)
imshow( imread('https://i.imgur.com/TVlQhpj.jpg') )
set(gca, 'OuterPosition', [.3 .42 .4 .4]);
subplot(2,1,2)
bar(1:10)
set(gca, 'OuterPosition', [.3 0 .35 .23]);

在此处输入图像描述

标签: matlabplot

解决方案


假设您的 MATLAB 版本是最新的 (>= R2019b),您可以使用tiledlayout而不是 subplot:

tiledlayout(2,1)

nexttile
imshow( imread('https://i.imgur.com/TVlQhpj.jpg') )

nexttile
bar(1:10)

这会将地图放在图表上方。


如果您希望地图直接位于图表上方,则必须手动修改尺寸,如下所示:

pos1 = [0.2 0.1 0.6 0.3];
subplot('Position',pos1)
bar(1:10)
pos2 = [0.2 0.41 0.6 0.3];
subplot('Position',pos2)
imshow( imread('https://i.imgur.com/TVlQhpj.jpg') )

在此处输入图像描述


推荐阅读