def plotLightCurves(log, lightCurves, polyOrder, pathToOutputDirectory):
    """
    *plot lightcurve(s) given an list of magnitude, time pairs*

    **Key Arguments:**
        - ``log`` -- logger
        - ``lightCurves`` -- list of magnitude, time numPy arrays
        - ``polyOrder`` -- order of polynomial used to fit the model lightcurves extracted from spectra
        - ``pathToOutputDirectory`` -- path to the output directory

    **Return:**
        - None
    """
    import matplotlib.pyplot as plt
    import numpy as np
    resultsDict = {}
    ax = plt.subplot(111)
    curveDict = {}
    for curve in lightCurves:
        x = curve[1]
        y = curve[0]
        if len(x) <= 4:
            curveDict['poly'] = None
            continue
        order = polyOrder
        poly = np.polyfit(x, y, order)
        curveDict['poly'] = poly
        pOrder = np.poly1d(poly)
        polyString = 'mxxx[i] = '
        polyStringMd = '\\\\(mag = '
        for i in range(0, order + 1):
            if i > 0 and poly[i] > 0:
                polyString += '+'
                polyStringMd += '+'
            polyString += '%s*pow(i,%s) ' % (poly[i], order - i)
            polyStringMd += '%s*time^{%s} ' % (poly[i], order - i)
        polyStringMd += '\\\\)'
        xp = np.arange(int(min(x)), int(max(x)), 0.2)
        ax.plot(x, y, '.', xp, pOrder(xp), '--')
    title = curve[5]
    box = ax.get_position()
    ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
    ax.legend(loc='center left', bbox_to_anchor=(1, 0.5), prop={'size': 8})
    ax.titlesize = 'medium'
    ax.labelsize = 'medium'
    plt.xlabel('Days Relative to Peak')
    plt.ylabel('Magnitude')
    plt.title(title, fontsize='small', verticalalignment='bottom',
        linespacing=0.2)
    ax.invert_yaxis()
    fileName = pathToOutputDirectory + title.replace(' ', '_') + '.png'
    plt.savefig(fileName)
    plt.clf()
    return curveDict
