How do I flip an image without affecting the Y Axis?
조회 수: 4 (최근 30일)
이전 댓글 표시
I'm trying to plot the example file using the following code:
close all;
input = 'example.txt';
data = readmatrix(input);
filename = input(1:end-4);
filename = [filename '.png'];
x = data(:,3);
v = data(:,9);
id = find(x == 0);
imdata = reshape(v,id(2)-1,[])';
im = rot90(imdata,2);
im = fliplr(im);
xdata = 1:1:56;
ydata = 6.3:0.275:19.775;
flip(ydata);
imagesc(im, 'XData', xdata, 'YData', ydata);
colorbar;
colormap(jet);
xlabel('xaxis');
ylabel('yaxis');
title('title');
axis on
xticks(xdata);
set(gca, 'XTick', (1 : 5 : 56) );
yticks(ydata);
set(gca, 'YTick', (6.3: 1.375 :19.775) ); % plot every 5th tick
set(gca,'YDir','normal')
Where I would like the red corner of the output plot in the top right, blue corner in bottom left, as per this image:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/334815/image.png)
However the Y axis nees to go from ~6 in the bottom left to ~19 in the top left - the axis in this image are reversed. What am I doing wrong with my code? I've tried using ydata straight, flipping it, etc but that hasn't worked. Whenever I set YDir it always flips the image so that the red in at the bottom, but then the axis looks ok.
Thanks in advance.
댓글 수: 0
채택된 답변
Mehmed Saad
2020년 7월 21일
편집: Mehmed Saad
2020년 7월 21일
Use flip (or fliplr,flipud)
figure,
subplot(211)
imagesc(im, 'XData', xdata, 'YData', ydata);set(gca,'YDir','normal')
subplot(212)
imagesc(im, 'XData', xdata, 'YData', fliplr(ydata));set(gca,'YDir','normal')
colormap('jet')
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Annotations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!