相关疑难解决方法(0)

如何使用matplotlib在while循环中实时绘图?

我试图使用OpenCV实时绘制来自摄像机的一些数据.但是,实时绘图(使用matplotlib)似乎不起作用.

我把这个问题分成了这个简单的例子:

fig = plt.figure()
plt.axis([0, 1000, 0, 1])

i = 0
x = list()
y = list()

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()
Run Code Online (Sandbox Code Playgroud)

我希望这个例子可以单独绘制1000个点.实际发生的是窗口弹出第一个点显示(确定),然后在填充图表的其余部分之前等待循环完成.

有什么想法,为什么我没有看到一次填充一个点?

python real-time matplotlib while-loop

211
推荐指数
11
解决办法
44万
查看次数

matplotlib中没有绘图窗口

我刚刚使用synaptic包系统在Ubuntu 9.10中安装了matplotlib.但是,当我尝试以下简单示例时

>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]
Run Code Online (Sandbox Code Playgroud)

我没有绘图窗口.关于如何让情节窗口显示的任何想法?

python ubuntu matplotlib

84
推荐指数
5
解决办法
15万
查看次数

使用matplotlib显示图像序列

我有这个简单的python脚本使用OpenCV从文件夹加载图像并在循环中显示它们.我想用这个效果重现这个效果matplotlib.

import cv2 as cv
import os

im_files = [for f in os.listdir('.') if f[-3:] == 'png']

for f in im_files:
    im = cv.imread(f, 0) #read image in greyscale
    cv.imshow('display', im)
    cv.waitKey(1)

cv.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)

我尝试了以下脚本,但打开以显示图表的pyplot窗口变得无法响应.

import pylab as pl
import os

files = [f for f in os.listdir('.') if f[-3:] == 'png']
pl.ion()
for f in files:
    im=pl.imread(f)
    pl.imshow(im)
    pl.draw()
Run Code Online (Sandbox Code Playgroud)

我google了很多但找不到任何解决方案.我该怎么做呢?我在Windows 8上使用Anaconda 1.6 32bit.

python opencv matplotlib

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

在matplotlib中分页/滚动一组2D热图

我正在生成一组3D数据的2D热图.我希望能够有一个机制来交互式地浏览每个窗格.下面是一个简单的示例代码,我希望能够通过滑动条(或其他方法)以交互方式查看两个窗格(即z = [0,1]).matplotlib可以实现这一点,还是生成图像文件后我需要做后期处理?

import numpy as np
from matplotlib import pyplot as plt
data = np.random.randint(10, size=(5, 5, 2))
data_slice = np.zeros((5,5))
for i in range(0, 5):
  for j in range(0, 5):
     data_slice[i][j] = data[i][j][0]
plt.imshow(data_slice, cmap='hot', interpolation='nearest')
plt.show()
Run Code Online (Sandbox Code Playgroud)

编辑:我希望能够以交互方式执行此操作,并且似乎可能的重复尝试自动执行此操作.

python plot matplotlib

5
推荐指数
2
解决办法
1978
查看次数

在函数中更新 matplotlib 图像

我有一个处理图像的循环,我希望在每 100 次迭代(比如)使用 matplotlib 在单个输出窗口中显示图像。所以我正在尝试编写一个函数,它将一个 numpy 张量作为输入并显示相应的图像。

这是我所拥有的不起作用的东西:

def display(image):
  global im

  # If  im has been initialized, update it with the current image; otherwise initialize im and update with current image.   
  try:
    im
    im.set_array(image)
    plt.draw()
  except NameError:
    im = plt.imshow(image, cmap=plt.get_cmap('gray'), vmin=0, vmax=255)
    plt.show(block=False)
    plt.draw()
Run Code Online (Sandbox Code Playgroud)

我一开始试图通过 FuncAnimation 传递它,但这似乎旨在让动画调用一个函数来执行更新,而不是在 matplotlib 上调用函数来显示结果。

上面的代码打开一个窗口,但它似乎没有更新。任何人都可以指出我正确的方向吗?

非常感谢,

贾斯汀

python matplotlib

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

标签 统计

matplotlib ×5

python ×5

opencv ×1

plot ×1

real-time ×1

ubuntu ×1

while-loop ×1