def IV_curve_plot(data, fig):
    title = 'I/O pin current vs. output voltage'
    extend(data)
    fw = FigureWrapper(
        data,
        fig,
        x='voltage',
        y='I (A)',
        title=title,
        xlimits=[-5, 5],
        ylimits=[-0.020, 0.020],
    )

    x = 'Vx'
    y = 'I'

    fw.subplot.plot(
        [0, data.Vmax],
        [data.Imax, 0],
        'b-')
    fw.subplot.plot(
        [0, -data.Vmax],
        [-data.Imax, 0],
        'b-')

    fw.addcol(legend='', x=x, y=y)

    return fig
def processed_analog_value_time_plot(data, fig):
    fw = FigureWrapper(data, fig, x='time', y='voltage')

    extend(data)

    #    fw.addcol(legend='rel pwm', y=lambda e: e.pwm_value/255*1023)
    fw.addcol(legend='Vin', y=lambda e: e.Vin)
    fw.addcol(legend='Vout', y=lambda e: e.Vout)
    fw.addcol(legend='Vamp', y=lambda e: e.Vamp)
    fw.addcol(legend='Vx', y=lambda e: e.Vx)
    fw.addcol(legend='I', y=lambda e: e.I)
    return fig
def processed_analog_value_time_plot(data, fig):
    fw = FigureWrapper(
        data, fig, x='time', y='voltage')

    extend(data)

#    fw.addcol(legend='rel pwm', y=lambda e: e.pwm_value/255*1023)
    fw.addcol(legend='Vin', y=lambda e: e.Vin)
    fw.addcol(legend='Vout', y=lambda e: e.Vout)
    fw.addcol(legend='Vamp', y=lambda e: e.Vamp)
    fw.addcol(legend='Vx', y=lambda e: e.Vx)
    fw.addcol(legend='I', y=lambda e: e.I)
    return fig
def IV_curve_plot(data, fig):
    title = 'I/O pin current vs. output voltage'
    extend(data)
    fw = FigureWrapper(
        data,
        fig,
        x='voltage',
        y='I (A)',
        title=title,
        xlimits=[-5, 5],
        ylimits=[-0.020, 0.020],
    )

    x = 'Vx'
    y = 'I'

    fw.subplot.plot([0, data.Vmax], [data.Imax, 0], 'b-')
    fw.subplot.plot([0, -data.Vmax], [-data.Imax, 0], 'b-')

    fw.addcol(legend='', x=x, y=y)

    return fig