How can i use scatter with an image

I have had either all the points plot correctly the colors distorted/scaled by the image they were plotted over, OR the scatter plot colors scaled correctly, but plotted incorrectly.
This produces Fig 1
figure, imshow(img, 'InitialMag',100, 'Border','tight'), hold on
scatter(mx, my, pointsize, TEC)
hold off
This gives Fig 2:
figure
ax = gca();
scatter(mx, my, pointsize, TEC)
freezeColors(ax);
hold(ax, 'on');
imz = imshow(img, 'InitialMag',100, 'Border','tight');
hold(ax, 'off')
uistack(imz, 'bottom')

2 Comments

There is a miss match with the scatter points data and image data....you must tell what you are expecting?
I want the positions of the scatter points to remain the same as Fig 1, but want the color scale to be frozen like in Fig 2. Fig 3 shows to coordinates of the scattered points. The image coordinates are shown in Fig 4.

Sign in to comment.

Answers (1)

Your (x, y) coordinates have both positive and negative y. However, by default images are assigned positive coordinates by row and column offsets.
You should use the imshow() XData and YData options to place the image within the x y coordinate space. You will probably need to look at the documentation of image() to understand XData and YData.

1 Comment

I took a look at the documentation but all it really tells me is that, "Y-axis limits of nondefault coordinate system, specified as the comma-separated pair consisting of 'YData' and a two-element vector. The value can have more than two elements, but imshow uses only the first and last elements.
Example: 'YData',[100 200]"
since my x and y data are latitude and longitude, I try:
imz = imshow(img, 'InitialMag',100, 'Border','tight', 'XData',[0 360], 'YData',[-90 90]);
This gives Fig 5.

Sign in to comment.

Categories

Find more on Display Image in Help Center and File Exchange

Asked:

on 24 May 2017

Commented:

on 24 May 2017

Community Treasure Hunt

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

Start Hunting!