python - Insert image on current plot without deformation -
in matplotlib, appropriate way plot image native aspect ratio, , optionally native size, inside existing axes @ specific data location?
for instance:
from matplotlib.pyplot import plot matplotlib.image import imread matplotlib.cbook import get_sample_data plot([50,60],[1000,2000]) im = imread(get_sample_data("grace_hopper.png", asfileobj=false))
now want plot im
instance centered @ coordinates (57,1200)
scaling or max height , without deformation.
i imagine mix between matplotlib.offsetbox.anchoredoffsetbox
, matplotlib.offsetbox.offsetimage
should trick, i'm not familiar these classes.
as expected, solution in matplotlib.offsetbox
module:
from matplotlib.pyplot import plot, gca, show matplotlib.image import imread matplotlib.cbook import get_sample_data matplotlib.offsetbox import offsetimage, annotationbbox plot([50,60],[1000,2000]) im = imread(get_sample_data("grace_hopper.png", asfileobj=false)) oi = offsetimage(im, zoom=0.1) ab = annotationbbox(oi, (57, 1200), xycoords='data', frameon=false) gca().add_artist(ab) show()
in fact, annotationbbox
needed , alot more numerous options.
Comments
Post a Comment