Вы можете получить размер изображения
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)
EDIT: Я добавил функцию, которая перемещает изображение в угол при изменении размера окна.
Код:
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()
Результат: