【问题标题】:Controlling visual stacking order of images and colour bars in Matlab在 Matlab 中控制图像和彩条的视觉堆叠顺序
【发布时间】:2016-02-24 08:29:05
【问题描述】:

如何在 Matlab 中控制图像和彩条的视觉堆叠顺序? 我有 6 张图像,我使用 subplot 在 2 x 3 网格上显示。我为每个图像添加了彩条,但一些彩条出现在图像后面,使它们不可见。在我的示例中,属于图像 3 和 5 的彩条(在 subplot 命令中计算)出现在它们各自图像的后面。

我不认为我将能够使用轴子对象的顺序,因为每个轴显然只有一个子对象,即图像,并且颜色条对象是图形的子对象(必须与其相同关联的轴)。

我也尝试过 uistack(顶部用于颜色条,底部用于图像),虽然它确实改变了外观,但最后,其他颜色条会在图像后面结束。似乎是随机的,例如在图像上的uistack和属于子图5的颜色条之后,子图2的颜色条会突然出现在它的图像后面。

PS 我也尝试过重新排序图的孩子,但他们没有改变(即使有画家渲染)

【问题讨论】:

  • 请发MCVE。如果您的代码不起作用,您需要将其添加到您的问题以及生成的数字的屏幕截图中......
  • 你用patch画你的彩条吗?实际上,你能给我们看一些代码吗?

标签: image matlab graphics colorbar


【解决方案1】:

很奇怪:刚准备MCVE的时候,问题并没有重现,但是我不知道有什么不同!也许是 Windows 更新?无论如何,有问题的原始输出显示在这里http://i.stack.imgur.com/LJVG2.png,准备好的示例输出看起来应该在这里http://i.stack.imgur.com/F1LMX.png。所以现在,没有问题...

代码是

function example()
I1=ones(96,96);
I2=ones(96,96)+1;
I3=ones(96,96)+2;
I4=ones(96,96)+3;
I5=ones(96,96)+4;
I6=ones(96,96)+5;


pos=[10 10 12 9];

fig=figure
fig.Units='centimeters';
fig.Position=pos;
set(gcf,'PaperPositionMode','auto');

   h(1)=veryTightSubPlot(2,3,1); 
   imshow(I1,[0,6]);
   h(2)=veryTightSubPlot(2,3,2);
   imshow(I2,[0,6]);
   h(3)=veryTightSubPlot(2,3,3);
   imshow(I3,[0,6]);

   h(4)=veryTightSubPlot(2,3,4); 
   imshow(I4,[0,6]);
   h(5)=veryTightSubPlot(2,3,5);
   imshow(I5,[0,6]);
   h(6)=veryTightSubPlot(2,3,6);
   imshow(I6,[0,6]);

V=[0.315,0.65,0.97,0.315,0.65,0.97,0.315,0.65,0.97];
for i=1:6
    p=get(h(i),'Position');
    c=colorbar(h(i),'Axislocation','in','FontSize',8);
    c.Color=[0,0,0];
    cp=c.Position;

    h(i).Position=p;
    cp(3)=cp(3)/2;
    c.Position=[V(i) cp(2:4)];
end
colormap(parula);
end

function [ax] = veryTightSubPlot(rows, columns,index)
    ix = mod(index-1,columns);
    iy = floor((index-1)/columns);
    pos = [ix/columns,1-(iy+1)/rows,1/columns,1/rows];
    ax = axes('ActivePositionProperty','outerposition','Position',pos);
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多