如何在图像上绘制新数据?

时间:2015-07-21 08:56:25

标签: python matplotlib imread

我有一个计算数据(x,y),我想把它放在纸上的图像上,以便与它的某些边界进行比较。如果这个图像是2D x,y图,我会很容易地提取点,然后与我一起绘制。然而,这个图像是一个3D彩色图,因此,如果我只是想读取图像,根据它定义我的坐标并在顶部绘制我的数据,所以最后看起来像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

这里的问题是我不知道如何定义坐标,如图所示。除此之外,我不知道如何绘制不是散射而是划线。

我感谢任何有用的解决方案!

1 个答案:

答案 0 :(得分:0)

您正在寻找extent=的{​​{1}}关键字参数,详见documentation

关于第二个问题,如果你想要一个折线图,你可以使用imshow()函数而不是plot()