当前位置:  开发笔记 > 编程语言 > 正文

在python中绘制图像背景

如何解决《在python中绘制图像背景》经验,为你挑选了1个好方法。

我想使用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()

但它给了我一些非常丑陋的东西:

一些非常难看的东西



1> Paul H..:

就像您链接到的MATLAB示例一样,您必须在调用时指定所需的图像范围imshow.

默认情况下,matplotlib和MATLAB都将图像的左上角放在原点,从那里向下和向右,并将每个像素设置为坐标空间中的1x1平方.这就是你的形象正在做的事情.

您可以使用extent以列表形式的参数来控制它[left, right, bottom, top].

不使用范围看起来像这样:

import matplotlib.pyplot as plt
img = plt.imread("airlines.jpg")
fig, ax = plt.subplots()
ax.imshow(img)

在此输入图像描述

你可以看到,我们有一个1600 x 1200的塞缪尔·杰克逊坦率地说,他乘坐的航班上的蛇很生气.

但是如果我们想在两个维度上绘制一条范围从0到300的线,我们可以这样做:

fig, ax = plt.subplots()
x = range(300)
ax.imshow(img, extent=[0, 400, 0, 300])
ax.plot(x, x, '--', linefirebrick')

在此输入图像描述

我不知道这条线是否能帮助杰克逊先生解决他的蛇问题.至少,它不会让事情变得更难.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有