
    M/Ph>                         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dS )    )lrangeNc                        e Zd Zd Zd Zd ZdS )MPLConfiguratorc                     g | _         d S N_inverse_actions)selfs    b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/statsmodels/tsa/vector_ar/plotting.py__init__zMPLConfigurator.__init__
   s     "    c                 .    | j         D ]} |             d S r   r   )r
   actions     r   revertzMPLConfigurator.revert   s+    + 	 	FFHHHH	 	r   c                     dd l j        d         |j        d<   fd}| j                            |           d S )Nr   	font.sizec                       j         d<   d S )Nr   )rcParams)mplold_sizes   r   r   z,MPLConfigurator.set_fontsize.<locals>.revert   s    (0CL%%%r   )
matplotlibr   r	   append)r
   sizer   r   r   s      @@r   set_fontsizezMPLConfigurator.set_fontsize   se        <,$([!	1 	1 	1 	1 	1 	1 	$$V,,,,,r   N)__name__
__module____qualname__r   r   r    r   r   r   r      sA        # # #  - - - - -r   r   c                 f   ddl m} | j        d         }|d}}|                    d          }t	          |          D ]s}| dd|f         }	|                    |||dz             }
||
                    ||	           n|
                    |	           ||
                    ||                    t|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1XX 
# 
#qqq!tW__T41--GGE2GGBKKKLLq"""Jr   Tc           	      $   dd l m} | j        \  }	}
|
d}}|                    d          }t	          j        |	          }t	          j        |	dz
  |	t          |          z             }t	          j        |	|	t          |          z             }t          |
          D ]}|                    |||dz             }|	                    || d d |f         dd          }|	                    |t          j
        | dd |f         |d d |f         f         d	d
          }|rD|	                    ||d d |f         dd          }|	                    ||d d |f         d           ||                    ||                    |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   s    $#####;DAqA$D
**X*
&
&CYq\\FIa!eQT]++Ei1s4yy=))G1XX $ $[[tQqS))WWVU111a4[#ZW@@WWUBE%Q-aaad";<e%  ' '  	5)AAAqD/5/  1 1BGGGYqqq!t_e444LLq"""!#]3N	##N####Jr   r1   r=   皙?asymc                 ~   ddl m} |                                nt          t	          |                     fd}	 |	| |           |h|dk    r8t          j        |          }
 |	| |
|z  z
  |            |	| |
|z  z   |           |dv r( |	|d         |            |	|d         |           dS dS dS )zm
    Make plot with optional error bars

    Parameters
    ----------
    y :
    error : array or None
    r   Nc                 2                         | |          S r   )r+   )yfmtaxesxs     r   <lambda>z!plot_with_error.<locals>.<lambda>l   s    1a!5!5 r   rU   mcsz1sz2sz3r    )r%   r&   gcar   rB   utilnorm_signif_level)rX   errorr[   rZ   	value_fmt	error_fmtalphastderr_typer0   plot_actionqs     ``       r   plot_with_errorrl   \   s    $#####|wwyy]s1vvA55555KK9 &  &u--AKAIy111KAIy111222Ka),,,Ka),,,,, 
 32r      c                    ddl m} t                      }|                    |           | j        d         }|                    ||dd          \  }}	t          |          D ]s}
t          |          D ]a}|	|
         |         }t          | dd|
|f         |||           |1|                    |dd	
           |                    | dd	
           btt                       |
                                 |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fontsizerp   rq   	err_boundr0   configr1   r4   rZ   ir5   r7   s                r   plot_full_acorrr}   z   s'    $#####F
!!!AAQ8UCCIC1XX B Bq 	B 	BAaBuQQQ1W~$- - - - $

9C4
@@@

I:SD
AAA	B 
MMOOOJr   c                 T   dd l m} ||                                }|!t          j        t          |                     }|                    |dg| |           |                    dd           |                    ddg           |	                    d|d         dz   g           d S )Nr   )lwr1   rr   r<   r    )
r%   r&   rb   r@   rA   rB   vlinesrv   set_ylimset_xlim)rx   rp   rq   r7   r0   s        r   ru   ru      s    ######	zWWYY~3u::&&IIfqc5YI///JJqJKKQ KKVBZ!^$%%%%%r   c                      t           r   )NotImplementedErrorr   r   r   plot_acorr_with_errorr      s    
r   c                  ~    dd l m} t          ddddd          }|                    |             |j        di | d S )Nr   rT   g?gffffff?g?)bottomtopleftrighthspacer   )r%   r&   dictupdatesubplots_adjust)kwdsr0   passed_kwdss      r   rw   rw      si    ######d !# # #K tC&&+&&&&&r   r!   c           
         ddl m} |i }|	i }	t          |||          \  }}}|                    ||dd|
          \  }}t	                       |                    |d           d}t          |          }t          t          |                     }|D ]K\  }}}}||         |         }||d	k    rLt          j	        |dd||z  |z   ||z  |z   f                   }t          | dd||f         ||||d
|           |dv rG|d         dd||f         |d         dd||f         f}t          | dd||f         ||||d
|           nt          | dd||f         d||d
           |                    dd           ||                    |||f         d           |                    dd          }|                    |||         ||         fz  |           M|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sharexro   r$      )ry   z%s$\rightarrow$%srU   b)r[   rZ   rh   rf   ri   r]   r    )r[   rZ   rf   r1   r   ry      )r%   r&   _get_irf_plot_configrt   rw   suptitlerB   r   r@   sqrtrl   rv   getr,   )valuesstderrimpcolrescolr.   titlesignifhlinessubplot_paramsplot_paramsr$   ri   r0   r   r   to_plotr4   rZ   subtitle_tempr1   rngr5   r|   aiajr7   sigerrsszs                                r   irf_grid_plotr      sz    $#####0GGE5'5d%*G  = =IC LLL$$$(ME

A
V

C! H HAr2"Xb\ f$$gfQQQA	1q519%<=>>qqq!Qw"&,V V V V666ayAq)6!9QQQ1W+==qqq!Qw2&,V V V V F111a7OTSr&)+ + + + 	

1C
   JJvac{#J...
B//
]eAha%99BGGGGJr   c                    t          |           x}x}|8|6dx}}t          j        | |          t          j        | |          ddfg}n|3d}t          j        | |          fdt                    D             }nP|3d}t          j        | |          fdt                    D             }nfdt                    D             }|||fS )Nr    r   c                     g | ]}||d f	S r   r   ).0r|   r5   s     r   
<listcomp>z(_get_irf_plot_config.<locals>.<listcomp>  !    222AAq!Q<222r   c                     g | ]}||d f	S r   r   )r   r5   r|   s     r   r   z(_get_irf_plot_config.<locals>.<listcomp>
  r   r   c                 @    g | ]}t                    D ]}||||f	S r   )r)   )r   r|   r5   r1   s      r   r   z(_get_irf_plot_config.<locals>.<listcomp>  s4    DDDA588DDaAq!Q<DDDDr   )rB   rc   	get_indexr)   )	r.   r   r   r   r   r   r|   r5   r1   s	         @@@r   r   r      s   E

"E"EAf0N5&))N5&))q!Q<.		N5&))2222q222		N5&))2222q222 EDDDqDDD%  r   )NN)NNTN)NNr1   r=   rT   rU   )rm   rm   NN)rm   NN)rT   NNNr!   rU   )statsmodels.compat.pythonr   numpyr@   statsmodels.tsa.vector_ar.utiltsa	vector_arrc   r   r8   rS   rl   r}   ru   r   rw   r   r   r   r   r   <module>r      sB   , , , , , ,     - - - - - - - - - - - -- - - - - - - -.   6 7;!%       F <??E- - - -< <@"   >& & & &$  ' ' ' <@AG: : : :z! ! ! ! !r   