summaryrefslogtreecommitdiffstats
path: root/TOOLS
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-01-03 02:57:33 +0100
committerwm4 <wm4@nowhere>2015-01-03 02:57:33 +0100
commit73ea0ddc080a53b5474205703ba3b189d0352d3a (patch)
tree6cc4fd6e9d24ab08cf32dead0a6c4a05f1df8323 /TOOLS
parent6a6620a554f2301083b6167f9235375937ef20aa (diff)
downloadmpv-73ea0ddc080a53b5474205703ba3b189d0352d3a.tar.bz2
mpv-73ea0ddc080a53b5474205703ba3b189d0352d3a.tar.xz
TOOLS/stats-conv: more improvements
Add an explicit "signal" event type, because the implicit one was confusing. Don't rescale the Y axis of the second graph, it was nonsense. Make the legend for the second graph separate (and cleanup the code creating the graphs).
Diffstat (limited to 'TOOLS')
-rwxr-xr-xTOOLS/stats-conv.py33
1 files changed, 20 insertions, 13 deletions
diff --git a/TOOLS/stats-conv.py b/TOOLS/stats-conv.py
index bc77e3e32a..1d64fd8bb8 100755
--- a/TOOLS/stats-conv.py
+++ b/TOOLS/stats-conv.py
@@ -21,13 +21,14 @@ e.g.:
Currently, the following event types are supported:
+ 'signal' <name> singular event
'start' <name> start of the named event
'end' <name> end of the named event
'value' <float> <name> a normal value (as opposed to event)
'event-timed' <ts> <name> singular event at the given timestamp
'value-timed' <ts> <float> <name>
a value for an event at the given timestamp
- <name> singular event
+ <name> singular event (same as 'signal')
"""
@@ -94,6 +95,10 @@ for line in [line.split("#")[0].strip() for line in open(filename, "r")]:
val = float(val)
e = get_event(name, "value")
e.vals.append((tsval, val))
+ elif event.startswith("signal "):
+ name = event.split(" ", 2)[1]
+ e = get_event(name, "event-signal")
+ e.vals.append((ts, 1))
else:
e = get_event(event, "event-signal")
e.vals.append((ts, 1))
@@ -104,23 +109,25 @@ G.sevents.sort(key=lambda x: x.name)
hasval = False
for e, index in zip(G.sevents, range(len(G.sevents))):
m = len(G.sevents)
- e.vals = [(x, y * (m - index) / m) for (x, y) in e.vals]
if e.type == "value":
hasval = True
+ else:
+ e.vals = [(x, y * (m - index) / m) for (x, y) in e.vals]
-plot.hold(True)
+fig = plot.figure()
+fig.hold(True)
+ax = [None, None]
plots = 2 if hasval else 1
-mainpl = plot.subplot(plots, 1, 1)
-legend = []
+ax[0] = fig.add_subplot(plots, 1, 1)
+if hasval:
+ ax[1] = fig.add_subplot(plots, 1, 2, sharex=ax[0])
+legends = [[], []]
for e in G.sevents:
- if e.type == "value":
- plot.subplot(plots, 1, 2, sharex=mainpl)
- else:
- plot.subplot(plots, 1, 1)
- pl, = plot.plot([x for x,y in e.vals], [y for x,y in e.vals], label=e.name)
+ 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)
if e.type == "event-signal":
plot.setp(pl, marker = e.marker, linestyle = "None")
- legend.append(pl)
-plot.subplot(plots, 1, 1)
-plot.legend(legend, [pl.get_label() for pl in legend])
+for cur in ax:
+ if cur is not None:
+ cur.legend()
plot.show()