2014-01-08 1 views
3

나는 간단한 문제라고 생각합니다 : imagesc을 사용하여 이미지를 만드는 행렬이 있습니다. 간단히 이미지의 오른쪽에 두 번째 y 축을 표시하려고합니다. 어떻게해야합니까? 예 : 다음의 왼쪽에, yAxis1으로 화상을 표시 할MATLAB의 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); 

. 그게 큽니다. 그러나 이미지 의 오른쪽에 yAxis2을 어떻게 표시합니까?? 감사. 하지만 해명하십시오 수 있습니다 정확히

답변

5
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'); 

enter image description here

+0

덕분에 무슨 일이 일어나고 있는지? – Spacey

+0

@Learnaholic 그것은 두 그림을 같은 그림으로 덮습니다 (귀하의 경우에는 동일한 aMatrix 이미지입니다). ax1은 y 축이 오른쪽에 설정된 그림 핸들입니다. 두 번째 이미지를 이미지화 할 때는 먼저 imagesc 앞에 축 정보를 얻습니다. 첫 번째 이미지의 위치는 get (ax1, 'Position')을 통해 얻습니다. 그리고 y 축은 왼쪽에 설정됩니다. – lennon310

+0

나는 무엇이 일어나고 있는지 전혀 이해하지 못합니다. 처음 이미지를 만들 때 기본 y 축이 왼쪽에 있습니다. 너 왜 'xticklabel'을 가지고 있니? 우리는 xaxis를 다루지 않습니다. 그런 다음 ax2에서 다시 왼쪽으로 설정 했습니까? 오른쪽에 있어야한다고 생각합니다 ... 결국 Ydir을 다시 '정상'으로 설정합니다 ... 왜? – Spacey