Наложение точечной диаграммы на фоновое изображение и изменение диапазонов осей - PullRequest
1 голос
/ 14 июня 2011

У меня есть набор координат карты 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, y находятся в одной системе.

Как получить ось xсюжет собирается от -100 до +100, а не от 0 до 1011?а затем наложите график рассеяния на x, y.

1 Ответ

1 голос
/ 14 июня 2011

Следующий код с сайта 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'.

...