필터 지우기
필터 지우기

pcolor and pixel shift

조회 수: 5 (최근 30일)
jenka
jenka 2012년 7월 3일
I am using the following code. It appears that my text '*' has been shifted somewhat. Any suggestions on how to shift it back. It is a known issue with pcolor I am just not sure how to deal with it. Thanks!
h = pcolor(x,y, cor_son_eurasia');hold on;axis xy;
shading flat
sz = size(lat_new);
prob_son_eurasia = prob_son_eurasia';
for i=1:sz(1)
for j=1:sz(2)
if prob_son_eurasia(i,j)==1
g = text(x(i,j),y(i,j),'*');
set(g,'fontsize',[10]);
set(g,'fontweight','bold');
hold on;
%z = text(x(i,j),y(i,j),num2str(cor(i,j)));
end
end
end

답변 (1개)

Image Analyst
Image Analyst 2012년 7월 3일
What are you trying to do? Display an image? pcolor() is not good for displaying pixel images. You have one less "tile" than you have pixels in each direction. For example using pcolor on a 5 by 8 image will show an image with 4 by 7 little colored squares. What's more, they don't correspond to pixel values but to the slope of the sheet that would be warped between the corners. It's really the corners of the squares that have the values, not the squares themselves. And it's really the corners of the squares that have the coordinates, not the center of the squares themselves. So I believe that's why your text is displaced. Since it's so deceptive to use pcolor(), I recommend you use imshow() or image() instead.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by