import numpy as np
from valjean.javert.templates import (PlotTemplate, CurveElements,
                                      SubPlotElements)
bins = [np.array(np.arange(10))]
lcurves1 = []
for icurve in range(3):
    lcurves1.append(CurveElements(
        values=bins[0][1:]*0.5*(icurve+1) + icurve*(-1)**(icurve),
        bins=bins, legend=str(icurve), index=icurve))
sbpe1 = SubPlotElements(curves=lcurves1, axnames=['the x-axis', ''])
lcurves2 = []
for icurve in range(1, 3):
    lcurves2.append(CurveElements(
        values=lcurves1[icurve].values/lcurves1[0].values,
        bins=bins, legend=str(icurve+1)+' vs 0', index=icurve))
sbpe2 = SubPlotElements(curves=lcurves2,
                        axnames=['the x-axis', 'C/ref'])
lcurves3 = []
for icurve in range(1, 3):
    lcurves3.append(CurveElements(
        values=((lcurves1[icurve].values-lcurves1[0].values)
                /lcurves1[0].values),
        bins=bins, legend=str(icurve+1)+' vs 0', index=icurve))
sbpe3 = SubPlotElements(curves=lcurves3,
                        axnames=['the x-axis', '(C-ref)/ref'])
pltit = PlotTemplate(subplots=[sbpe1, sbpe2, sbpe3],
                     suppress_legends=True)
from valjean.javert.mpl import MplPlot, MplStyle
style = MplStyle(legends={'loc': 3, 'bbox_to_anchor': (0., 1., 1, 1),
                          'mode': 'expand'})
mplplt = MplPlot(pltit, style=style)
fig, _ = mplplt.draw()
