Generating the plots on the same figure using image command.
Info
This question is closed. Reopen it to edit or answer.
Show older comments
I am generating the plots using image command in matlab that is image(x,y,Z). Unlike plot command which we can do a "hold on" to generate the plots on the same figure, it seems we cannot do with the image command.
I am running a loop in which every loop generates a figure from the image command, I want to generate the plots on the same figure(using the image command), any help?
1 Comment
Phenomenal One
on 24 Mar 2019
Answers (2)
Image Analyst
on 23 Mar 2019
Use subplot if you want separate plots in an array
for k = 1 : 20
subplot(4, 5, k);
imshow(..............
end
9 Comments
Phenomenal One
on 23 Mar 2019
Image Analyst
on 24 Mar 2019
Post an example of what you want, because clearly I was not understanding what you've written so far.
subplot() is the easiest way to get 5 plots. Why can't you use subplot()?
Phenomenal One
on 24 Mar 2019
Phenomenal One
on 24 Mar 2019
Image Analyst
on 24 Mar 2019
Call hold on after your first plot
plot(t, y1, 'b-', 'LineWidth', 2);
hold on;
plot(t, y2, 'y-', 'LineWidth', 2);
plot(t, y3, 'g-', 'LineWidth', 2);
ax = gca;
ax.XAxisLocation = 'origin'; % Place x asis in the middle.
Phenomenal One
on 24 Mar 2019
Phenomenal One
on 24 Mar 2019
Image Analyst
on 24 Mar 2019
How are you creating the bitmapped RGB images, that you then go on to display with image() or imshow()?
Phenomenal One
on 25 Mar 2019
Walter Roberson
on 25 Mar 2019
image() is fine to draw additional images in an axes when "hold on" is in effect.
Remember, though, that by default if you do not pass image() x, y data, or XData YData parameters, then image() is going to assume [1, number of columns] and [1, number of rows] as the XData and YData -- each pixel being one data unit. If your second image is the same size or later than the original image, then it is going to cover the original up completely -- unless, that is, that the newer image happens to have AlphaData set so that it is transparent in places.
im = imread('cameraman.tif');
image(im);
colormap(gray)
hold on
image([64 128], [64 128], img);
hold off
and observe that there is a smaller image overlayed on top of the first image. (Smaller because x y coordinates specified told it where the corners were to draw the image at.)
Remember, images are opaque by default, so you cannot see anything underneath an image unless you tell MATLAB to make the image transparent.
This question is closed.
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
