У меня есть набор координатных координат 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.
карта фактически охватывает диапазон от -100 до +100 по оси x- и -50 50 в оси 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()
Важной частью является аргумент 'extent' 'imshow'.