PNG as figure background

113 vues (au cours des 30 derniers jours)
Andrew McCall
Andrew McCall le 24 Sep 2017
Modifié(e) : Kristina Collins le 29 Août 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?

Réponse acceptée

Chad Greene
Chad Greene le 24 Sep 2017
Modifié(e) : Chad Greene le 24 Sep 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 commentaires
Mahmud Khan
Mahmud Khan le 2 Nov 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 le 29 Août 2021
Modifié(e) : Kristina Collins le 29 Août 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)

Connectez-vous pour commenter.

Plus de réponses (2)

Marijn Dekker
Marijn Dekker le 10 Déc 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 le 24 Sep 2017

Community Treasure Hunt

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

Start Hunting!

Translated by