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

how to plot new data on an image?

我有一个计算数据 (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')

这里的问题是我不知道如何定义图中的坐标。另外我不知道如何绘制不是散点而是一条线。

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

您正在寻找 imshow()extent= 关键字参数,详见 documentation

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