我想用matplotlib在图像背景上绘制一个图形。我在matlab中找到了这个方法http://www.peteryu.ca/tutorials/matlab/plot_over_image_background
我试过这样的基本方法:
im = plt.imread("dd.png")
implot = plt.imshow(im)
theta=np.linspace(0,2*np.pi,50)
z=np.cos(theta)*39+145
t=np.sin(theta)*39+535-78+39
plt.plot(z,t)
plt.show()
但它给了我一些非常丑陋的东西:
与链接到的MATLAB示例一样,在调用
imshow
时,必须指定图像的所需范围。默认情况下,matplotlib和MATLAB都将图像的左上角作为原点,从那里向下和向右放置,并将每个像素设置为坐标空间中的1x1正方形。这就是你的形象。
您可以使用
extent
参数来控制它,该参数采用列表的形式[left, right, bottom, top]
。不使用扩展数据块如下所示:
你可以看到,我们有一个1600×1200的塞缪尔·杰克逊,坦白地说,他对飞机上的蛇相当恼火。
但如果我们想在这上面画一条从0到300的直线,我们可以这样做:
我不知道这条线是否能帮助杰克逊先生解决蛇的问题。至少,这不会让事情变得更困难。
相关问题 更多 >
编程相关推荐