import matplotlib.pyplot as plt
import numpy as np

def overlay_taylor_diagram_lines(axes,cax,option):
    '''
    Overlay lines emanating from origin on a Taylor diagram.

    OVERLAY_TAYLOR_DIAGRAM_CIRCLES(AXES,CAX,OPTION)
    Plots lines emanating from origin to indicate correlation values (CORs) 
 
    INPUTS:
    axes   : data structure containing axes information for target diagram
    cax    : handle for plot axes
    option : data structure containing option values. (Refer to 
             GET_TAYLOR_DIAGRAM_OPTIONS function for more information.)
    option['colcor']   : CORs grid and tick labels color (Default: blue)
    option['showlabelscor'] : Show or not the CORRELATION tick labels
    option['stylecor'] : Linestyle of the CORs grid
    option['tickcor']  : CORs values to plot lines from origin
    option['widthcor'] : Line width of the CORs grid
 
    OUTPUTS:
    None.
    
    Author: Peter A. Rochford
        Symplectic, LLC
        www.thesymplectic.com
        prochford@thesymplectic.com

    Created on Dec 3, 2016
   '''

    # DRAW CORRELATION LINES EMANATING FROM THE ORIGIN:
    npanels = option['numberpanels']
    corr = option['tickcor'][npanels-1]
    th  = np.arccos(corr)
    cst = np.cos(th); snt = np.sin(th);
    cs = np.append(-1.0*cst, cst)
    sn = np.append(-1.0*snt, snt)
    for i,val in enumerate(cs):
        plt.plot([0, axes['rmax']*cs[i]],[0, axes['rmax']*sn[i]], 
                 linestyle = option['stylecor'],
                 color = option['colcor'], linewidth = option['widthcor'])
    
    # annotate the lines by correlation coefficient
    if option['showlabelscor'] == 'on':
        rt = 1.05*axes['rmax']
        for i,cc in enumerate(corr):
            plt.text(rt*cst[i],rt*snt[i],str(round(cc,2)), 
                     horizontalalignment = 'center', color = option['colcor'])
