2015-07-21 3 views
0

У меня есть рассчитанные данные (x, y), которые я бы хотел поставить поверх изображения из бумаги, чтобы сравнить его с некоторыми его границами. Если бы это изображение было 2D 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') 

enter image description here

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

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

+0

Возможный дубликат [как использовать «степень» в matplotlib.pyplot.imshow] (http://stackoverflow.com/questions/6999621/how-to-use-extent-in-matplotlib-pyplot-imshow) –

ответ

0

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

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

+0

Большой! Я получаю правильный ответ, например, здесь также http://stackoverflow.com/questions/6999621/how-to-use-extent-in-matplotlib-pyplot-imshow – physiker