ó
âp7]c           @   sí   d  d l  m Z m Z d  d l Z d  d l j j j Z d e	 f d „  ƒ  YZ
 d d d „ Z d d e d d „ Z d d d d d	 d
 d „ Z d d d d d „ Z d d d d „ Z d „  Z d „  Z d	 d d d d d
 d „ Z d „  Z d S(   iÿÿÿÿ(   t   lranget   rangeNt   MPLConfiguratorc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   g  |  _  d  S(   N(   t   _inverse_actions(   t   self(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   __init__   s    c         C   s   x |  j  D] } | ƒ  q
 Wd  S(   N(   R   (   R   t   action(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   revert   s    c            sL   d d  l  ‰  ˆ  j d ‰ | ˆ  j d <‡  ‡ f d †  } |  j j | ƒ d  S(   Niÿÿÿÿs	   font.sizec              s   ˆ ˆ  j  d <d  S(   Ns	   font.size(   t   rcParams(    (   t   mplt   old_size(    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyR      s    (   t
   matplotlibR   R   t   append(   R   t   sizeR   (    (   R	   R
   sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   set_fontsize   s
    (   t   __name__t
   __module__R   R   R   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyR      s   		c         C   sÑ   d d l  j } |  j d } | d } } | j d d ƒ } x t | ƒ D] } |  d d … | f }	 | j | | | d ƒ }
 | d k	 rœ |
 j | |	 ƒ n |
 j |	 ƒ | d k	 rH |
 j | | ƒ qH qH W| S(   s#   
    Plot multiple time series
    iÿÿÿÿNi   t   figsizei
   (   i
   i
   (	   t   matplotlib.pyplott   pyplott   shapet   figureR   t   add_subplott   Nonet   plott	   set_title(   t   Yt   namest   indext   pltt   kt   rowst   colst   figt   jt   tst   ax(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   plot_mts   s    c         C   sÏ  d d  l  j } |  j \ }	 }
 |
 d } } | j d d ƒ } t j |	 ƒ } t j |	 d |	 t | ƒ ƒ } t j |	 |	 t | ƒ ƒ } x@t |
 ƒ D]2} | j | | | d ƒ } | j	 | |  d  d  … | f d d d ƒ} | j	 | t j
 |  d d  … | f | d  d  … | f f d d d	 ƒ} | r~| j	 | | d  d  … | f d
 d d ƒ} | j	 | | d  d  … | f d
 ƒ n  | d  k	 rž| j | | ƒ n  | d  k rºi d d 6} n  | j |   q• W| S(   Niÿÿÿÿi   R   i
   R   t   labelt   Observeds   k--t   Forecasts   k-.s   Forc 2 STD errs   upper rightt   loc(   i
   i
   (   R   R   R   R   t   npt   aranget   lenR   t   subplotR   t   r_R   R   t   legend(   t   priort   forct	   err_uppert	   err_lowerR   R   t   plot_stderrt   legend_optionsR   t   nR   R   R    R!   t   pranget   rng_ft   rng_errR"   R$   t   p1t   p2t   p3(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   plot_var_forc7   s,     +?	"	&R   s   k--gš™™™™™©?t   asymc            sù   d d l  j } ˆ  d k r* | j ƒ  ‰  n  ˆ d k	 r< ˆ n t t |  ƒ ƒ ‰ ‡  ‡ f d †  }	 |	 |  | ƒ | d k	 rõ | d k rÁ t j | ƒ }
 |	 |  |
 | | ƒ |	 |  |
 | | ƒ n  | d k rõ |	 | d	 | ƒ |	 | d
 | ƒ qõ n  d S(   sn   
    Make plot with optional error bars

    Parameters
    ----------
    y :
    error : array or None

    iÿÿÿÿNc            s   ˆ  j  ˆ |  | ƒ S(   N(   R   (   t   yt   fmt(   t   axest   x(    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   <lambda>k   t    R>   t   mct   sz1t   sz2t   sz3i    i   (   RE   RF   RG   RH   (   R   R   R   t   gcaR    R,   t   utilt   norm_signif_level(   R?   t   errorRB   RA   t	   value_fmtt	   error_fmtt   alphat   stderr_typeR   t   plot_actiont   q(    (   RA   RB   sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   plot_with_errorZ   s    $i   c      
   C   s  d d l  j } t ƒ  } | j | ƒ |  j d } | j | | d d d t ƒ\ } }	 xª t | ƒ D]œ }
 x“ t | ƒ D]… } |	 |
 | } t |  d d … |
 | f d | d | d	 | ƒ| d k	 rv | j
 | d
 d d d ƒ| j
 | d
 d d d ƒqv qv Wqc Wt ƒ  | j ƒ  | S(   s'   

    Parameters
    ----------



    iÿÿÿÿNi   R   i
   t   squeezet	   linewidtht   xlabelR$   t   colorR   t	   linestyles   --(   i
   i
   (   R   R   R   R   R   t   subplotst   FalseR   t
   acorr_plotR   t   axhlinet   adjust_subplotsR   (   t   acorrt   fontsizeRU   RV   t	   err_boundR   t   configR   R!   RA   t   iR"   R$   (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   plot_full_acorry   s     
	$"%
c         C   s¯   d d  l  j } | d  k r* | j ƒ  } n  | d  k rN t j t |  ƒ ƒ } n  | j | d g |  d | ƒ| j d d d ƒ| j	 d d g ƒ | j
 d | d d g ƒ d  S(   Niÿÿÿÿi    t   lwRW   R   i   (   R   R   R   RI   R*   R+   R,   t   vlinesR\   t   set_ylimt   set_xlim(   R^   RU   RV   R$   R   (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyR[   ›   s    c           C   s
   t  ‚ d  S(   N(   t   NotImplementedError(    (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   plot_acorr_with_error­   s    c          K   sT   d d  l  j } t d d d d d d d d d	 d
 ƒ } | j |  ƒ | j |   d  S(   Niÿÿÿÿt   bottomgš™™™™™©?t   topgš™™™™™í?t   leftt   rightgffffffî?t   hspacegš™™™™™É?(   R   R   t   dictt   updatet   subplots_adjust(   t   kwdsR   t   passed_kwds(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyR]   ±   s    	i
   c         C   s®  d d l  j } | d k r$ i  } n  |	 d k r9 i  }	 n  t | | | ƒ \ } } } | j d | d | d t d t d |
 ƒ \ } } t ƒ  | j | d d	 ƒd
 } t	 | ƒ } t
 t	 |  ƒ ƒ } xå| D]Ý\ } } } } | | | } | d k	 rþ| d k rtt j | d d … | | | | | | f ƒ } t |  d d … | | f | d | d | d | d d d | ƒn  | d k r0| d d d … | | f | d d d … | | f f } t |  d d … | | f | d | d | d | d d d | ƒq0n2 t |  d d … | | f d d | d | d d ƒ| j d d d ƒ| d k	 ro| j | | | f d d ƒn  | j d d ƒ } | j | | | | | f d | ƒqÉ W| S(   s¯   
    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
    iÿÿÿÿNt   nrowst   ncolst   sharexRT   R   R_   i   s   %s$\rightarrow$%sR>   RB   RA   RO   RM   t   bRP   RE   RF   RG   RH   i    i   RW   R   i   (   RE   RF   RG   RH   (   R   R   R   t   _get_irf_plot_configRY   t   TrueRZ   R]   t   suptitleR,   R    R*   t   sqrtRS   R\   t   getR   (   t   valuest   stderrt   impcolt   rescolR   t   titlet   signift   hlinest   subplot_paramst   plot_paramsR   RP   R   Rt   Ru   t   to_plotR!   RA   t   subtitle_tempR   t   rngR"   Rb   t   ait   ajR$   t   sigt   errst   sz(    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   irf_grid_plot¾   s@    		2+:++ )c   	      C   sa  t  |  ƒ } } } | d  k	 rr | d  k	 rr d } } t j |  | ƒ } t j |  | ƒ } | | d d f g } nâ | d  k	 rÄ d } t j |  | ƒ } g  t | ƒ D] } | | | d f ^ q£ } n | d  k	 rd } t j |  | ƒ } g  t | ƒ D] } | | | d f ^ qõ } n> g  t | ƒ D]+ } t | ƒ D] } | | | | f ^ q3q#} | | | f S(   Ni   i    (   R,   R   RJ   t	   get_indexR   (	   R   R   R€   Rt   Ru   R   R"   Rb   R†   (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyRx   û   s     
..>(   i
   i
   (   t   statsmodels.compat.pythonR    R   t   numpyR*   t   statsmodels.tsa.vector_ar.utilt   tsat	   vector_arRJ   t   objectR   R   R%   Ry   R=   RS   Rc   R[   Ri   R]   RŽ   Rx   (    (    (    sA   lib/python2.7/site-packages/statsmodels/tsa/vector_ar/plotting.pyt   <module>   s    	!		!			;