相关疑难解决方法(0)

为什么用Matplotlib绘图这么慢?

我目前正在评估不同的python绘图库.现在我正在尝试使用matplotlib,我对性能非常失望.以下示例是从SciPy示例中修改的,并且每秒仅给出~8帧!

有什么方法可以加快速度,或者我应该选择不同的绘图库?

from pylab import *
import time

ion()
fig = figure()
ax1 = fig.add_subplot(611)
ax2 = fig.add_subplot(612)
ax3 = fig.add_subplot(613)
ax4 = fig.add_subplot(614)
ax5 = fig.add_subplot(615)
ax6 = fig.add_subplot(616)

x = arange(0,2*pi,0.01)
y = sin(x)
line1, = ax1.plot(x, y, 'r-')
line2, = ax2.plot(x, y, 'g-')
line3, = ax3.plot(x, y, 'y-')
line4, = ax4.plot(x, y, 'm-')
line5, = ax5.plot(x, y, 'k-')
line6, = ax6.plot(x, y, 'p-')

# turn off interactive plotting - speeds things up by 1 Frame …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

85
推荐指数
4
解决办法
10万
查看次数

有没有办法将pyplot.imshow()对象转换为numpy数组?

我需要可视化2D numpy数组.我正在使用pyplot.这是代码:

import cv2 as cv
import numpy as np
from matplotlib import pyplot

img = pyplot.imshow( radiance_val )
#radiance_val is a 2D numpy array of size = ( 512, 512 ) 
#filled with np.float32 values

pyplot.show()
Run Code Online (Sandbox Code Playgroud)

我按预期获得输出.

现在我的问题是,有没有办法将上面的代码中的"img"从pyplot类型转换为numpy类型.我需要这个,以便我可以将可视化加载为opencv图像并对其执行进一步处理.我正在使用python 2.7,32位.

请帮助

谢谢


编辑1:在Thorsten Kranz的解决方案之后

import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
import PIL
from cStringIO import StringIO

frame1 = plt.gca()
frame1.axes.get_xaxis().set_visible(False)
frame1.axes.get_yaxis().set_visible(False)
plt.imshow(np.random.random((10,10)))

buffer_ = StringIO()
plt.savefig( buffer_, format = "png", bbox_inches = 'tight', pad_inches …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy matplotlib

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

标签 统计

matplotlib ×2

python ×2

numpy ×1

opencv ×1