diff --git a/scripts/tsplot.py b/scripts/tsplot.py index 3a811da152bc086c47ef7a971d9ace7dc6ab383f..8324f3441ea7446ec04e10a0353b0d8e12832846 100755 --- a/scripts/tsplot.py +++ b/scripts/tsplot.py @@ -1,4 +1,5 @@ #!env python +#coding: utf-8 import argparse import json @@ -8,8 +9,15 @@ import re import logging import matplotlib as M import matplotlib.pyplot as P +from distutils.version import LooseVersion from itertools import chain, islice, cycle +# Run-time check for matplot lib version for line style functionality. +if LooseVersion(M.__version__)<LooseVersion("1.5.0"): + logging.critical("require matplotlib version ≥ 1.5.0") + sys.exit(1) + + # Read timeseries data from multiple files, plot each in one planel, with common # time axis, and optionally sharing a vertical axis as governed by the configuration. @@ -25,7 +33,7 @@ def parse_clargs(): P = argparse.ArgumentParser(description='Plot time series data on one or more graphs.') P.add_argument('inputs', metavar='FILE', nargs='+', help='time series data in JSON format') - P.add_argument('-t', '--abscissae', metavar='RANGE', dest='trange', + P.add_argument('-t', '--trange', metavar='RANGE', dest='trange', type=parse_range_spec, help='restrict time axis to RANGE (see below)') P.add_argument('-g', '--group', metavar='KEY,...', dest='groupby', @@ -313,8 +321,9 @@ def plot_plots(plot_groups, save=None): plot.plot(s.t, s.y, color=c, ls=line, label=l) # treat exluded points especially ex = s.excluded() - ymin, ymax = s.yrange() - plot.plot(ex.t, np.clip(ex.y, ymin, ymax), marker='x', ls='', color=c) + if ex is not None: + ymin, ymax = s.yrange() + plot.plot(ex.t, np.clip(ex.y, ymin, ymax), marker='x', ls='', color=c) if first_plot: plot.legend(loc=2, fontsize='small')