figanimΒΆ

Compare figure output performance of Matplotlib vs. GR

from __future__ import print_function

import sys
import os
from timeit import default_timer as timer
import numpy as np

if len(sys.argv) > 1:
    dev = sys.argv[1]
else:
    dev = 'ps'

x = np.arange(0, 2 * np.pi, 0.01)

# create an animation using GR

from gr.pygr import plot

tstart = timer()
os.environ["GKS_WSTYPE"] = dev
for i in range(1, 100):
    plot(x, np.sin(x + i / 10.0))
    if i % 2 == 0:
        print('.', end="")
        sys.stdout.flush()

fps_gr = int(100 / (timer() - tstart))
print('fps  (GR): %4d' % fps_gr)

# create the same animation using matplotlib

import matplotlib
matplotlib.use(dev)

import matplotlib.pyplot as plt

tstart = timer()
for i in range(1, 100):
    plt.clf()
    plt.plot(np.sin(x + i / 10.0))
    plt.savefig('mpl%04d.%s' % (i, dev))
    if i % 2 == 0:
        print('.', end="")
        sys.stdout.flush()


fps_mpl = int(100 / (timer() - tstart))
print('fps (mpl): %4d' % fps_mpl)

print('  speedup: %6.1f' % (float(fps_gr) / fps_mpl))