Present a live graph of the incoming streaming data

This command requires that matplotlib be installed and accessible
to the application in order to work.  The application reads
data from the WVA event stream and plots all data for specified
parameters within some time window.  Subscriptions must be
set up prior to running this command for it to work.

As an example, let's say that I want to show the last 3 minutes (180 seconds)
of speed and rpm data for my device.  In that case, I work set up my
subscriptions and execute the following...

\b
    $ wva subscriptions graph --seconds=180 VehicleSpeed EngineSpeed

def graph(ctx, items, seconds, ylim):
    """Present a live graph of the incoming streaming data

This command requires that matplotlib be installed and accessible
to the application in order to work.  The application reads
data from the WVA event stream and plots all data for specified
parameters within some time window.  Subscriptions must be
set up prior to running this command for it to work.

As an example, let's say that I want to show the last 3 minutes (180 seconds)
of speed and rpm data for my device.  In that case, I work set up my
subscriptions and execute the following...

\b
    $ wva subscriptions graph --seconds=180 VehicleSpeed EngineSpeed
"""
    wva = get_wva(ctx)
    es = wva.get_event_stream()

    try:
        from wva import grapher
    except ImportError:
        print("Unable to graph... you must have matplotlib installed")
    else:
        stream_grapher = grapher.WVAStreamGrapher(wva, items, seconds=seconds, ylim=ylim)
        es.enable()
        stream_grapher.run()