diff options
author | wm4 <wm4@nowhere> | 2015-10-15 22:34:14 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-10-15 23:07:03 +0200 |
commit | 2483dab54d77288db218030910f6b1b4b08292e5 (patch) | |
tree | f401ffa6ae1c476207d9e50204a85d689860df6a /TOOLS/stats-conv.py | |
parent | 3a7a2385df1244a242591633497510f4a3c32836 (diff) | |
download | mpv-2483dab54d77288db218030910f6b1b4b08292e5.tar.bz2 mpv-2483dab54d77288db218030910f6b1b4b08292e5.tar.xz |
TOOLS/stats-conv: rewrite for pygtgraph
matplotlib is pathetically slow, which makes using stats-conv.py to view
dumps longer than a few seconds a huge pain.
pyqtgraph is slightly faster than matplotlib. Other than that, it seems
to be worse in every aspect (at least for plotting), but such is life.
Diffstat (limited to 'TOOLS/stats-conv.py')
-rwxr-xr-x | TOOLS/stats-conv.py | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/TOOLS/stats-conv.py b/TOOLS/stats-conv.py index 5884af5d46..e0b168d541 100755 --- a/TOOLS/stats-conv.py +++ b/TOOLS/stats-conv.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 -import matplotlib.pyplot as plot +from pyqtgraph.Qt import QtGui, QtCore +import pyqtgraph as pg import sys import re @@ -38,8 +39,8 @@ Currently, the following event types are supported: class G: events = {} start = None - # http://matplotlib.org/api/markers_api.html#module-matplotlib.markers - markers = ["o", "8", "s", "p", "*", "h", "+", "x", "D"] + markers = ["o", "s", "t", "d"] + curveno = 0 def find_marker(): if len(G.markers) == 0: @@ -128,20 +129,31 @@ for e, index in zip(G.sevents, range(len(G.sevents))): else: e.vals = [(x, y * (m - index) / m) for (x, y) in e.vals] -fig = plot.figure() -fig.hold(True) +pg.setConfigOption('background', 'w') +pg.setConfigOption('foreground', 'k') +app = QtGui.QApplication([]) +win = pg.GraphicsWindow() +#win.resize(1500, 900) + ax = [None, None] plots = 2 if hasval else 1 -ax[0] = fig.add_subplot(plots, 1, 1) +ax[0] = win.addPlot() if hasval: - ax[1] = fig.add_subplot(plots, 1, 2, sharex=ax[0]) -legends = [[], []] + win.nextRow() + ax[1] = win.addPlot() + ax[1].setXLink(ax[0]) +for cur in ax: + if cur is not None: + cur.addLegend(offset = (-1, 1)) for e in G.sevents: cur = ax[1 if e.type == "value" else 0] - pl, = cur.plot([x for x,y in e.vals], [y for x,y in e.vals], label=e.name) + args = {'name': e.name,'antialias':True} if e.type == "event-signal": - plot.setp(pl, marker = e.marker, linestyle = "None") -for cur in ax: - if cur is not None: - cur.legend() -plot.show() + args['symbol'] = e.marker + args['pen'] = None + else: + args['pen'] = pg.mkPen(pg.intColor(G.curveno), width=0) + G.curveno += 1 + n = cur.plot([x for x,y in e.vals], [y for x,y in e.vals], **args) + +QtGui.QApplication.instance().exec_() |