
    'YHh>                         d dl mZ d dlZd dlmc mc mZ  G d d      ZddZ		 	 ddZ
	 	 ddZ	 	 ddZdd	Zd
 Zd Z	 	 ddZd Zy)    )lrangeNc                       e Zd Zd Zd Zd Zy)MPLConfiguratorc                     g | _         y N_inverse_actions)selfs    [/var/www/html/planif/env/lib/python3.12/site-packages/statsmodels/tsa/vector_ar/plotting.py__init__zMPLConfigurator.__init__
   s
     "    c                 4    | j                   D ]	  } |         y r   r   )r
   actions     r   revertzMPLConfigurator.revert   s    ++ 	FH	r   c                     dd l j                  d   |j                  d<   fd}| j                  j                  |       y )Nr   	font.sizec                  $     j                   d<   y )Nr   )rcParams)mplold_sizes   r   r   z,MPLConfigurator.set_fontsize.<locals>.revert   s    (0CLL%r   )
matplotlibr   r	   append)r
   sizer   r   r   s      @@r   set_fontsizezMPLConfigurator.set_fontsize   s=     <<,$([!	1 	$$V,r   N)__name__
__module____qualname__r   r   r    r   r   r   r      s    #-r   r   c                 4   ddl m} | j                  d   }|d}}|j                  d      }t	        |      D ]^  }| dd|f   }	|j                  |||dz         }
||
j                  ||	       n|
j                  |	       |K|
j                  ||          ` |S )z#
    Plot multiple time series
    r   N   
   r"   figsize)matplotlib.pyplotpyplotshapefigurerangeadd_subplotplot	set_title)Ynamesindexpltkrowscolsfigjtsaxs              r   plot_mtsr8      s     $	
AA$D
**X*
&C1X 
#q!tW__T41-GGE2GGBKLLq"
# Jr   c           	         dd l m} | j                  \  }	}
|
d}}|j                  d      }t	        j
                  |	      }t	        j
                  |	dz
  |	t        |      z         }t	        j
                  |	|	t        |      z         }t        |
      D ]  }|j                  |||dz         }|j                  || d d |f   dd      }|j                  |t        j                  | dd |f   |d d |f   f   d	d
      }|r6|j                  ||d d |f   dd      }|j                  ||d d |f   d       ||j                  ||          |ddi} |j                  di |  |S )Nr   r    r!   r#   r1   Observed)labelk--Forecastzk-.zForc 2 STD errloczupper rightr   )r%   r&   r'   r(   nparangelenr)   subplotr+   r_r,   legend)priorforc	err_upper	err_lowerr/   r.   plot_stderrlegend_optionsr0   nr1   r2   r3   r4   prangerng_frng_errr5   r7   p1p2p3s                         r   plot_var_forcrS   9   sp    $;;DAqA$D
**X*
&CYYq\FIIa!eQT]+Eii1s4y=)G1X $[[tQqS)WWVU1a4[#ZW@WWUBEE%Q-ad";<e%  ' )AqD/5/  1BGGGYq!t_e4LLq"!#]3N		#N##$$ Jr   c                 6   ddl m} |j                         nt        t	        |             fd}	 |	| |       |V|dk(  r3t        j                  |      }
 |	| |
|z  z
  |        |	| |
|z  z   |       |dv r |	|d   |        |	|d   |       yyy)zm
    Make plot with optional error bars

    Parameters
    ----------
    y :
    error : array or None
    r   Nc                 *    j                  | |      S r   )r+   )yfmtaxesxs     r   <lambda>z!plot_with_error.<locals>.<lambda>l   s    1a!5 r   asymmcsz1sz2sz3r    )r%   r&   gcar   rB   utilnorm_signif_level)rV   errorrY   rX   	value_fmt	error_fmtalphastderr_typer0   plot_actionqs     ``       r   plot_with_errorrk   \   s     $|wwy]s1vA5K9 & &&u-AAIy1AIy122a),a), 3 r   c                    ddl m} t               }|j                  |       | j                  d   }|j                  ||dd      \  }}	t        |      D ]]  }
t        |      D ]M  }|	|
   |   }t        | dd|
|f   |||       |%|j                  |dd	
       |j                  | dd	
       O _ t                |j                          |S )z$

    Parameters
    ----------
    r   Nr    r!   F)r$   squeeze)	linewidthxlabelr7   r1   z--)color	linestyle)r%   r&   r   r   r'   subplotsr)   
acorr_plotaxhlineadjust_subplotsr   )acorrfontsizern   ro   	err_boundr0   configr1   r4   rX   ir5   r7   s                r   plot_full_acorrr{   z   s     $F
!AAQ8UCIC1X Bq 	BAaBuQ1W~$- $

9C4
@

I:SD
A	BB 
MMOJr   c                    dd l m} ||j                         }|t        j                  t        |             }|j                  |dg| |       |j                  dd       |j                  ddg       |j                  d|d   dz   g       y )Nr   )lwr1   rp   r<   r    )
r%   r&   ra   r@   rA   rB   vlinesrt   set_ylimset_xlim)rv   rn   ro   r7   r0   s        r   rs   rs      s}    #	zWWY~3u:&IIfqc5YI/JJqJKKQ KKVBZ!^$%r   c                      t         r   )NotImplementedErrorr   r   r   plot_acorr_with_errorr      s    
r   c                  v    dd l m} t        ddddd      }|j                  |         |j                  di | y )Nr   皙?g?gffffff?g?)bottomtopleftrighthspacer   )r%   r&   dictupdatesubplots_adjust)kwdsr0   passed_kwdss      r   ru   ru      s>    #d !#K tC&+&r   c           
         ddl m} |i }|	i }	t        |||      \  }}}|j                  ||dd|
      \  }}t	                |j                  |d       d}t        |      }t        t        |             }|D ]  \  }}}}||   |   }||d	k(  rCt        j                  |dd||z  |z   ||z  |z   f         }t        | dd||f   ||||d
|       |dv rM|d   dd||f   |d   dd||f   f}t        | dd||f   ||||d
|       nt        | dd||f   d||d
       |j                  dd       ||j                  |||f   d       |j                  dd      }|j                  |||   ||   fz  |        |S )z
    Reusable function to make flexible grid plots of impulse responses and
    comulative effects

    values : (T + 1) x k x k
    stderr : T x k x k
    hlines : k x k
    r   NTF)nrowsncolssharexrm   r$      )rw   z%s$\rightarrow$%sr[   b)rY   rX   rg   re   rh   r\   r    )rY   rX   re   r1   r~   rw      )r%   r&   _get_irf_plot_configrr   ru   suptitlerB   r   r@   sqrtrk   rt   getr,   )valuesstderrimpcolrescolr.   titlesignifhlinessubplot_paramsplot_paramsr$   rh   r0   r   r   to_plotr4   rX   subtitle_tempr1   rngr5   rz   aiajr7   sigerrsszs                                r   irf_grid_plotr      s    $0GE5'5d%*G  =IC LLL$(ME
A
V
C! HAr2"Xb\ f$ggfQA	1q519%<=>q!Qw"&,V66ayAq)6!9Q1W+==q!Qw2&,V F1a7OTSr&)+ 	

1C
 JJvac{#J.
B/
]eAha%99BG/H2 Jr   c           	         t        |       x}x}}|:|8dx}}t        j                  | |      }t        j                  | |      }||ddfg}n|5d}t        j                  | |      }t        |      D cg c]  }|||df
 }}ne|5d}t        j                  | |      }t        |      D cg c]  }|||df
 }}n.t        |      D cg c]  }t        |      D ]  }||||f
  }}}|||fS c c}w c c}w c c}}w )Nr    r   )rB   rb   	get_indexr)   )	r.   r   r   r   r   r1   r5   rz   r   s	            r   r   r      s   E
"E"EAf0NN5&)NN5&)q!Q<.		NN5&)).q2AAq!Q<22		NN5&)).q2AAq!Q<22 */qDA58DaAq!Q<D<DD%   3
 3 Es   3C-*C2C7)NN)NNTN)NNr1   r=   r   r[   )   r   NN)r   NN)r   NNNr!   r[   )statsmodels.compat.pythonr   numpyr@   statsmodels.tsa.vector_ar.utiltsa	vector_arrb   r   r8   rS   rk   r{   rs   r   ru   r   r   r   r   r   <module>r      sl    ,  - -- -.6 7;!% F <??E-< <@">&$' <@AG:z!r   