Добавление фонового изображения к графику с известными координатами угла - программирование
Подтвердить что ты не робот

Добавление фонового изображения к графику с известными координатами угла

Скажем, я рисую набор точек с изображением в качестве фона. Я использовал изображение Lena в примере:

import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import imread

np.random.seed(0)
x = np.random.uniform(0.0,10.0,15)
y = np.random.uniform(0.0,10.0,15)
img = imread("lena.jpg")
plt.scatter(x,y,zorder=1)
plt.imshow(img,zorder=0)
plt.show()

Это дает мне enter image description here.

Мой вопрос: как я могу указать угловые координаты изображения на графике? Скажем, мне нужно, чтобы нижний левый угол находился в x, y = 0.5, 1.0, а верхний правый угол - x, y = 8.0, 7.0.

4b9b3361

Ответ 1

Используйте ключевое слово extent в imshow. Порядок аргумента [left, right, bottom, top]

import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import imread
import matplotlib.cbook as cbook

np.random.seed(0)
x = np.random.uniform(0.0,10.0,15)
y = np.random.uniform(0.0,10.0,15)

datafile = cbook.get_sample_data('lena.jpg')
img = imread(datafile)
plt.scatter(x,y,zorder=1)
plt.imshow(img, zorder=0, extent=[0.5, 8.0, 1.0, 7.0])
plt.show()

Ответ 2

Вы должны использовать параметр ключевого слова extent:

imshow(img, zorder=0, extent=[left, right, bottom, top])

Элементы экстента должны быть указаны в единицах данных, чтобы изображение могло соответствовать данным. Это можно использовать, например, для наложения географического пути (массива координат) на изображение с географической привязкой.