Python 在当前绘图上插入图像而不变形

Python 在当前绘图上插入图像而不变形,python,matplotlib,Python,Matplotlib,在matplotlib中,在特定数据位置的现有轴内,以其本机纵横比(可选)本机大小打印图像的最合适方式是什么 例如: from matplotlib.pyplot import plot from matplotlib.image import imread from matplotlib.cbook import get_sample_data plot([50,60],[1000,2000]) im = imread(get_sample_data("grace_hopper.png",

在matplotlib中,在特定数据位置的现有轴内,以其本机纵横比(可选)本机大小打印图像的最合适方式是什么

例如:

from matplotlib.pyplot import plot
from matplotlib.image import imread
from matplotlib.cbook import get_sample_data

plot([50,60],[1000,2000])
im = imread(get_sample_data("grace_hopper.png", asfileobj=False)) 
现在,我想绘制
im
,例如,以坐标
(571200)
为中心,具有一定的缩放比例或最大高度且不变形


我认为混合使用
matplotlib.offsetbox.AnchoredOffsetbox
matplotlib.offsetbox.OffsetImage
应该可以解决问题,但我显然不熟悉这些类。

正如预期的那样,解决方案在
matplotlib.offsetbox
模块中:

from matplotlib.pyplot import plot, gca, show
from matplotlib.image import imread
from matplotlib.cbook import get_sample_data
from 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()
结果如下:

事实上,
AnnotationBbox
通过众多的选项完成了所需的一切和更多功能