可以获取图片大小
im_width, im_height = im.size
print(im_width, im_height)
和地块大小
bbox = plt.gca().get_window_extent()
print(bbox.x0, bbox.y0, bbox.x1, bbox.y1)
并计算右下角的位置
plt.figimage(im, xo=bbox.x1-im_width, yo=bbox.y0)
最终你可能需要一些边距
margin_x = 20
margin_y = 20
plt.figimage(im, xo=bbox.x1-im_width-margin_x, yo=bbox.y0+margin_y)
编辑:我添加了在调整窗口大小时将图像移动到角落的功能。
代码:
import matplotlib.pyplot as plt
from PIL import Image
# --- functions ---
def on_resize(event):
#print(event)
bbox = plt.gca().get_window_extent()
print(bbox.x0, bbox.y0, bbox.x1, bbox.y1)
logo.ox = bbox.x1-im_width-margin_x
logo.oy = bbox.y0+margin_y
# --- main ---
plt.plot([1,2,3], [1,2,3])
im = Image.open('square-1.png')
im_width, im_height = im.size
print(im_width, im_height)
bbox = plt.gca().get_window_extent()
print(bbox.x0, bbox.y0, bbox.x1, bbox.y1)
margin_x = 20
margin_y = 20
logo = plt.figimage(im, xo=bbox.x1-im_width-margin_x, yo=bbox.y0+margin_y)
# connect function which will move image when window is resized
plt.gcf().canvas.mpl_connect('resize_event', on_resize)
plt.show()
结果: