相关疑难解决方法(0)

如何在matplotlib/Python中直接将散点图叠加在jpg图像上?

我需要快速绘制jpg帧作为跟踪算法的输出结果.与jpg帧的伴侣是包含简单(x,y)数据的文本文件,其定位正被跟踪的图像目标.我想使用matplotlib绘制jpg图像,然后覆盖(x,y)数据的散点图,该数据从文本文件中读取并存储到Pythonic列表中.下面是将绘制jpg图像的代码,但在我所做的所有matplotlib,scipy和PIL手册和帮助页面的搜索中,我找不到任何解释如何维护此绘图窗口并简单地覆盖散点图图像中各个(x,y)位置的简单标记.任何帮助是极大的赞赏.

import matplotlib.pyplot as plt;
im = plt.imread(image_name);
implot = plt.imshow(im);
plt.show()
Run Code Online (Sandbox Code Playgroud)

python plot overlay image matplotlib

29
推荐指数
3
解决办法
7万
查看次数

在python中绘制图像背景

我想使用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()
Run Code Online (Sandbox Code Playgroud)

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

一些非常难看的东西

background image matplotlib

17
推荐指数
1
解决办法
4万
查看次数

在图上添加透明图片

下面我的python脚本在使用Basemap模块生成的地图上添加了一张图片(这个简单示例中生成的矩形)和GPS轨迹.
现在我想让两个轨道都是透明的.通过alphakwarg 的赛道没有问题,但我无法想象如何为图片做这件事.

import matplotlib.pyplot as plt
from PIL import Image
from matplotlib.offsetbox import AnnotationBbox, OffsetImage
from mpl_toolkits.basemap import Basemap

lats = [ 45, 15  ]
lons = [ 0 , 100 ]

fig = plt.figure( dpi = 300 )
ax  = plt.subplot(111)

myBaseMap = Basemap( projection='ortho', lat_0=lats[-1], lon_0=lons[-1] )
myBaseMap.bluemarble()

planeImg = Image.new('RGB', (600, 300), color = 'red')
planeXY  = myBaseMap( lons[-1], lats[-1] )
x,y      = myBaseMap( lons, lats )

plt.plot( x, y, color='r', alpha=0.5, linewidth=3  ) …
Run Code Online (Sandbox Code Playgroud)

python image matplotlib matplotlib-basemap

5
推荐指数
1
解决办法
838
查看次数

Python散点图在背景图像上进行数据验证

我正在尝试在Python中在背景图像上绘制数据,以进行数据验证,即看看我从自己的数据生成的曲线与我保存为png的屏幕截图的论文中的曲线有多接近。

extent我在这里使用关键字 with尝试了代码imshow将背景图像添加到具有已知角坐标的绘图中,这是我的代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import imread
import matplotlib.cbook as cbook

np.random.seed(0)
x = np.random.uniform(0.0,10.0,15)
y = np.random.uniform(0.0,1.25,15)

datafile = cbook.get_sample_data('C:\\Users\\andrew.hills\\Desktop\\Capture.png')
img = imread(datafile)
plt.scatter(x,y,zorder=1)
plt.imshow(img, zorder=0, extent=[0.0, 10.0, 0.00, 1.25])
plt.show()
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是图形出现扭曲,我认为这是因为每个像素在轴上设置为 1x1,但我的数据范围在 x 方向为 0.0-10.0,在 y 方向为 0.00-1.25:

在此输入图像描述

如何更改此设置以使图像不会出现扭曲?

python background image scatter matplotlib

2
推荐指数
1
解决办法
5888
查看次数