How to Place an image over existing plots?

328 visualizzazioni (ultimi 30 giorni)
Ashley
Ashley il 18 Dic 2014
Risposto: DGM il 22 Mar 2023
Hello, I have some graphs in Matlab over which I want to insert a small image. I do not want to cover the graphs completely, and want to know how to specify the exact position for overlaying this image onto the existing plots. I have used imread to read the file, but cannot seem to figure out imshow to display the image properly where I would like it to be.

Risposta accettata

Chad Greene
Chad Greene il 18 Dic 2014
Hi Ashley,
Run this:
figure
plot((1:10).^2)
axes('pos',[.1 .6 .5 .3])
imshow('coins.png')
The axes command sets up a new set of axes on top of the x^2 plot, with the position of those axes as follows:
[bottomleftcornerXposition bottomleftcornerYposition width height]
  4 Commenti
JACQUES SPILLMANN
JACQUES SPILLMANN il 25 Apr 2020
How would I go about rotating that picture on the plot, let's say, by 10 degrees clockwise?
Dardag
Dardag il 29 Lug 2020
I am inserting a particular image in my figure but the resolution of the inserted image gets distorted if I create a smaller box for that, why would that be?
This is what I am using but I don't see any resolution options.
[img, map, alphachannel] = imread(fileName,'png');
image(img, 'AlphaData', alphachannel);

Accedi per commentare.

Più risposte (1)

DGM
DGM il 22 Mar 2023
This doesn't necessarily require creating another axes object. This can be done directly by setting xdata/ydata for image/imagesc/imshow.
See the example:

Categorie

Scopri di più su Specifying Target for Graphics Output in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by