如何让Matplotlib重绘更快?

时间:2014-06-02 10:44:29

标签: python matplotlib

我必须绘制一个子图的网格(例如16x16个)。我使用matplotlib但它有点太慢,特别是当我必须重绘图(例如,当它们的大小改变时)。我怎样才能让它更快?

P.S。以下是代码示例:

import sys
import matplotlib
matplotlib.use('Qt4Agg')
import pylab

from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure

import PyQt4
from PyQt4 import QtCore, QtGui, Qt

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)

    # generate the plot
    fig = Figure(figsize=(800, 800), facecolor=(1, 1, 1), edgecolor=(0, 0, 0))

    for i in range(256):
        ax = fig.add_subplot(16, 16, i)
        ax.plot([0, 1])
        ax.set_xticks([])
        ax.set_yticks([])
#        ax.set_title("Mega %i" % (i,))

    # generate the canvas to display the plot
    canvas = FigureCanvas(fig)
    canvas.setMinimumWidth(640)
    canvas.setMinimumHeight(640)

    # generate layout
    layout = QtGui.QVBoxLayout();
    layout.addWidget(canvas)
    layout.setGeometry(QtCore.QRect(0, 0, 1000, 1000))

    # generate widget
    widget = QtGui.QWidget()
    widget.setLayout(layout)

    # generate scroll area
    win = QtGui.QScrollArea()
    win.setWidget(widget)
    win.setMinimumWidth(100)
    win.setWidgetResizable(True)
    win.show()

    canvas.draw()

    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:2)

我没有测试代码的环境,但我这些步骤对我有用:

  1. 使用cProfile分析整个事物(f.e。How can you profile a python script?)。

  2. 通常它的一两个功能会减慢所有速度。

  3. 在stackoverflow / Internet上搜索这些函数名称。通常1-2人已经解决了性能问题。

  4. 问候Kuishi