将背景图像添加到具有已知角坐标的绘图

YXD*_*YXD 18 python numpy matplotlib

假设我正在绘制一组以图像为背景的点.我在示例中使用了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()
Run Code Online (Sandbox Code Playgroud)

这给了我在此输入图像描述 .

我的问题是:如何在图中指定图像的角坐标?让我们说我想要左下角x, y = 0.5, 1.0和右上角x, y = 8.0, 7.0.

Dav*_*ker 33

使用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()
Run Code Online (Sandbox Code Playgroud)


hel*_*ker 9

您必须使用extent关键字参数:

imshow(img, zorder=0, extent=[left, right, bottom, top])
Run Code Online (Sandbox Code Playgroud)

范围元素应以数据单位指定,以便图像可以匹配数据.例如,这可以用于在地理参考地图图像上覆盖地理路径(坐标阵列).