как нанести новые данные на изображение?

У меня есть расчетные данные (x, y), которые я хотел бы поместить поверх изображения с бумаги, чтобы сравнить с некоторыми его границами. Если бы это изображение было двухмерным графиком x, y, я бы легко извлек точки, а затем построил их вместе со своими. Однако это изображение представляет собой трехмерный цветной график, поэтому, если я хочу просто прочитать изображение, определите свои координаты в соответствии с ним и нанесите мои данные сверху, чтобы в конце было похоже на 2 слоя.

Я могу построить точки разброса следующим образом:

import matplotlib.pyplot as plt
im = plt.imread('fig_exp.png')
implot = plt.imshow(im)

# put a blue dot at (10, 20)
plt.scatter([10], [20], c='r', s=2000, marker=u'*')

plt.show()

Но как я могу определить координаты изображения, чтобы я мог построить, например,

x=[-100,-80,-60,-40]
y=[10,15,20,25]
plt.plot(x,y,'-ro')

введите здесь описание изображения

Проблема здесь в том, что я не знаю, как определить координаты, как на рисунке. Кроме того, я не знаю, как построить не в виде разброса, а в виде линии.

Я ценю любое полезное решение!


person physiker    schedule 21.07.2015    source источник


Ответы (1)


Вы ищете аргумент ключевого слова extent= для imshow(), как подробно описано в документации.

Что касается вашего второго вопроса, если вам нужен линейный график, вы используете функцию plot() вместо scatter().

person Hannes Ovrén    schedule 21.07.2015
comment
Здорово! Я получаю правильный ответ, например, здесь также stackoverflow.com/questions/6999621/ - person physiker; 21.07.2015