From 73ea0ddc080a53b5474205703ba3b189d0352d3a Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 3 Jan 2015 02:57:33 +0100 Subject: 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). --- TOOLS/stats-conv.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'TOOLS') 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' singular event 'start' start of the named event 'end' end of the named event 'value' a normal value (as opposed to event) 'event-timed' singular event at the given timestamp 'value-timed' a value for an event at the given timestamp - singular event + 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() -- cgit v1.2.3