在背景图上叠加散点图并修改坐标轴范围
我有一组地图上的 x,y 坐标,想把它们画在地图的背景图上。
我用下面的代码来显示我的地图:
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。
实际上,这张地图的 x 轴范围是从 -100 到 +100,y 轴范围是从 -50 到 50,而我的 x,y 坐标值也是在这个范围内。
我该怎么做才能让图表的 x 轴从 -100 到 +100,而不是从 0 到 1011?然后再把我的 x,y 散点图叠加上去。
1 个回答
1
下面这段代码来自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'参数。