【问题标题】:Put two y-axes on an imagesc image in MATLAB在MATLAB中的imagesc图像上放置两个y轴
【发布时间】:2014-01-27 02:39:17
【问题描述】:

我有一个我认为很简单的问题:我有一个使用imagesc 成像的矩阵。我只想在图像的右侧显示第二个 y 轴。我怎么做?示例:

clear all;
aMatrix = rand(20,30);
yAxis1 = 32.*(1:size(aMatrix,1));
yAxis2 = 165.*(1:size(aMatrix,1));
xAxis = 1:size(aMatrix,2);
imagesc(yAxis1, xAxis1, aMatrix);

下面将在左侧显示带有yAxis1 的图像。这很好,但是我如何同时在图像的右侧显示yAxis2?谢谢。

【问题讨论】:

    标签: image matlab image-processing plot axes


    【解决方案1】:

    使用 yyaxis 的非常相似的解决方案:

      aMatrix = rand(20,30);
      yAxis1 = 32.*(1:size(aMatrix,1));
      yAxis2 = 165.*(1:size(aMatrix,1));
      xAxis = 1:size(aMatrix,2);
      yyaxis left
      imagesc(xAxis, yAxis1, aMatrix);
      ax = gca;
      ax.YColor = ax.XColor;
      ylabel('Left Side')
      yyaxis right
      imagesc(xAxis, yAxis2,aMatrix);
      ax.YColor = ax.XColor;
      ylabel('Right Side')  
    

    【讨论】:

      【解决方案2】:
        aMatrix = rand(20,30);
        yAxis1 = 32.*(1:size(aMatrix,1));
        yAxis2 = 165.*(1:size(aMatrix,1));
        xAxis = 1:size(aMatrix,2);
        h1=imagesc(xAxis, yAxis1, aMatrix);set(gca,'YDir','normal');
        ax1=gca;
        set(ax1,'YColor','r','YAxisLocation','right');
        set(ax1,'XTickLabel',' ');
        ax2=axes('Position',get(ax1,'Position'),'YAxisLocation','left');
        h2=imagesc(xAxis, yAxis2,aMatrix,'Parent',ax2);
        set(gca,'YDir','normal');
      

      【讨论】:

      • 谢谢,但您能具体说明一下发生了什么吗?
      • @Learnaholic 它在同一个图中同时覆盖了两个图像(在您的情况下,它是相同的 aMatrix 图像)。 ax1 是y轴设置在右侧的图形句柄,当您第二次对图像进行图像处理时,您首先获得图像处理之前的轴信息。第一张图像的位置是通过 get(ax1,'Position') 获得的。并且y轴设置在左边。
      • 我完全不明白发生了什么。当您第一次制作图像时,其默认 y 轴位于左侧。为什么你有'xticklabel'?我们不是在处理 xaxis。然后在ax2中你把它放回左边??它应该在右边......然后最后你再次将 Ydir 设置为“正常”......为什么?
      • set(ax1,'YColor','r','YAxisLocation','right');将y轴设置在右侧。您可以删除此行并将 ax2 中的 YaxisLocation 更改为“right”。如果没有 Ydir 中的“正常”设置,标签顺序将被颠倒(顶部的数字较小)。查看此页面以获取有关轴的更多选项:mathworks.com/help/matlab/ref/axes_props.html 您可以尝试删除每一行并观察显示的变化。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 2018-01-21
      相关资源
      最近更新 更多