32

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

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

我的问题是:如何在图中指定图像的角坐标?假设我希望左下角位于 atx, y = 0.5, 1.0且右上角位于x, y = 8.0, 7.0

4

2 回答 2

44

使用extent关键字 of imshow。论证的顺序是[left, right, bottom, top]

import numpy as np
import matplotlib.pyplot as plt

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

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

在此处输入图像描述

  • 对于希望在散点图的一小块区域中显示图像的情况,请更改图的顺序 ( .imshowthen .scatter) 并更改extent值。
plt.imshow(img, zorder=0, extent=[3.0, 5.0, 3.0, 4.50])
plt.scatter(x, y, zorder=1)
plt.show()

在此处输入图像描述

于 2013-03-01T14:37:16.313 回答
11

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

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

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

于 2013-03-01T14:33:46.153 回答