我需要在一个图中绘制~2000x300行。 例如类似的东西,但300曲线(每个2000数据点)而不是这里显示的四个: example plot
首先我设置了这个数字:
fig, ax = plt.subplots(figsize=(8, 8))
然后我多次执行以下操作:
drawnLine = plt.Line2D([Xstart, Xfinish], [Ystart,Yfinish], 1, linestyle='solid', color='b')
ax.add_artist(drawnLine)
最后我想做:
fig.savefig(ExpFolder + 'NewFig.png')
然而,脚本达到8GB内存限制并停止。
答案 0 :(得分:0)
是的,matplotlib不是世界上效率最高的库。
现在,如果你在纯粹的纯粹天真的软件绘图中做到这一点,那么真正 的600,000个细分市场,嗯,不是很酷。
我建议您放弃matplotlib的canvas方法:
matplotlib
imagesc
和{consseorts'显示的图像使用一些技巧来实现这一点,但实际上,在这一点上,您并没有让您的生活更轻松。因此,选择任何允许您将像素绘制到位图上的python库。有一些。pyqtgraph
。 pyqtgraph
示例:
import pyqtgraph as pg
from PyQt4.QtGui import QApplication
import numpy
N=20
x = numpy.random.poisson(lam=0.01, size=(N,2000))
y = numpy.random.normal(size=(N,2000))
p = pg.plot()
for x_,y_ in zip(x,y):
p.addItem(pg.PlotDataItem(x_,y_))
QApplication.instance().exec_()
答案 1 :(得分:0)