python - 在背景图像上叠加散点图并更改轴范围

标签 python image overlay matplotlib

我有一组 x,y map 坐标,我想将其绘制在 map 的背景图像上。

我使用以下代码来显示我的 map :

import matplotlib.pyplot as plt
im=plt.imread('map.gif')
implot=plt.imshow(im,origin='lower')

现在 x 轴和 y 轴的范围是图像的像素值。就我而言,这些是:

im.shape[0] 
545
im.shape[1]
1011

因此,绘图的 x 轴从 0 到 1011,y 轴从 0 到 545。

map 实际上涵盖了 x 轴 -100 到 +100 和 y 轴 -50 到 50 的范围,并且我的 x,y 坐标值位于同一系统上。

如何使绘图的 x 轴从 -100 到 +100 而不是 0 到 1011?然后绘制我的 x,y 散点图。

最佳答案

以下代码来自 matplotlib 站点,显示了从 -3 到 3 的绘图,请查看:

#!/usr/bin/env python
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

delta = 0.025
x = y = np.arange(-3.0, 3.0, delta)
X, Y = np.meshgrid(x, y)
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)
Z = Z2-Z1  # difference of Gaussians

im = plt.imshow(Z, interpolation='bilinear', cmap=cm.gray,
                origin='lower', extent=[-3,3,-3,3])

plt.show()

重要的部分是“imshow”的“extent”参数。

关于python - 在背景图像上叠加散点图并更改轴范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6347537/

相关文章:

python isinstance(obj, tpyes.GeneratorType) 失败

python -\2 正则表达式的意思

python - Django的不区分大小写的网址?

python - 用python中的Pillow替换动态图像中的同一行像素

html - SCSS overlay display none 还在显示

python - 高效地将 numpy 数组转换为矩阵

将 HTML 文件截屏为 .jpg 或其他图像

wpf - 如果 ImageSource 引用了无法访问的 URL,如何防止 WPF 图像被阻塞?

android - 仅在可见显示区域绘制多边形

c++ - DirectX 9 或 10 覆盖