如何在图像上绘制新数据?
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()
。
我有一个计算数据 (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()
。