我如何移动颜色条外面的图像,仍然保持一个固定的高度?

45次浏览(过去30天)
我试图将不同大小比例的图像加载到“UIAxes”中,同时保持“颜色条”在图像之外,并保持固定的高度。当我改变“颜色条”的位置时,图像会改变它的大小并与“颜色条”重叠。

接受的答案

MathWorks支万博1manbetx援小组
问题是,一旦手动设置了颜色条的“位置”属性,坐标轴开始忽略颜色条,不再自动调整大小以适应颜色条。不幸的是,在R2020b之前,UIAxes的“InnerPosition”属性不能手动更改。
下面是两种变通方法。它们都需要使用常规轴而不是uiaxis:
1.使用常规轴代替uiaxis,手动调整轴和颜色条的位置。
与UIAxes的' InnerPosition '属性不同,我们可以设置规则轴的' Position '属性。在这个解决方案中,我们可以手动设置颜色条和规则轴的“位置”属性的值。示例代码如下:
%创建图形
FIG = ufigure;
%创建规则轴,设置NextPlot为replacechildren
Ax =轴(fig,“NextPlot”“replacechildren”);
%加载图像,我们以pepper .png为例
Img = imshow(“peppers.png”“父”、ax);
%创建colorbar
Cb = colorbar(ax);
%手动更改颜色条的位置为您想要的
cb。位置= [0.8838 0.1600 0.0400 0.7000]
%手动改变图像的位置通过改变规则轴的位置
斧子。位置= [0.1255 0.1349 0.6 0.8050];
修改坐标轴和色条的位置值后,加载新图像时,位置值将保持不变。
2.使用常规轴而不是uiaxis,并将轴放入tile图表布局中
这个解决方法是把坐标轴放到一个“平铺布局”中,它会创建一个平铺图表布局来显示当前图形中的图表。这将自动保持颜色条在图像外的固定位置,并自动调整图像的大小。示例代码如下:
%创建图形
无花果=uifigure;
%设置平铺布局
t =tiledlayout(图,“流”);
%创建规则轴
ax =轴(t)“NextPlot”“replacechildren”);
%创建colorbar
cbcolorbar (ax);
%加载你的图像,我们以pepper .png为例
imgimshow (“peppers.png”“父”、ax);
有关' axes '的' NextPlot '属性的更多信息,请参阅以下链接:

更多答案(0)

s manbetx 845


释放

R2019b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!