PNG as figure background

95 visualizaciones (últimos 30 días)
Andrew McCall
Andrew McCall el 24 de Sept. de 2017
Editada: Kristina Collins el 29 de Ag. de 2021
I am trying to generate a figure window with a saved PNG as the background. It will have a fluid simulation on top of it and all I want to do it have this saved PNG be the background. Similar to what set(gca,'Color', k) would do but instead of having the color I want to have it be a figure. Any thoughts?

Respuesta aceptada

Chad Greene
Chad Greene el 24 de Sept. de 2017
Editada: Chad Greene el 24 de Sept. de 2017
Try this. Start by plotting whatever data you have, then load the png image and plot it with image. Use the limits of the current axes (by xlim and ylim) as the x,y coordinates of the image edges. Some images might be flipped in the vertical direction, so you may have to use -ylim when you call imagesc. The uistack call just sends the image down to the bottom of the stack.
x = 1:500;
y = sind(x);
plot(x,y,'linewidth',3)
axis tight;
hold on
I = imread('peppers.png');
h = image(xlim,-ylim,I);
uistack(h,'bottom')
  2 comentarios
Mahmud Khan
Mahmud Khan el 2 de Nov. de 2018
How would it work for a 3D figure though? What if I wanted to use similar images on all three planes (x-y, x-z & y-z)?
I've been trying but failing.
Kristina Collins
Kristina Collins el 29 de Ag. de 2021
Editada: Kristina Collins el 29 de Ag. de 2021
Ah, so close to what I need....
I'm trying to plot some shaded values as a backdrop on a datetime plot. Any tips on how to get this to play nicely with datetime axes?
(Edit: Never mind. Figured out an alternative solution for my particular problem (adding shading to the background to denote another quantity - in this case, eclipse obscuration - using "fill." Breadcrumb for anyone with a similar issue: https://www.mathworks.com/matlabcentral/answers/302892-use-fill-in-a-datetime-value-plot-to-color-the-background)

Iniciar sesión para comentar.

Más respuestas (2)

Marijn Dekker
Marijn Dekker el 10 de Dic. de 2019
@Chad Greene your answer works, however instead of using -ylim you would want to use flip(ylim) for a general case :)

Image Analyst
Image Analyst el 24 de Sept. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by