ó
x\c           @   sq  d  Z  d d l m Z m Z d d l Z d d l Z d d l Z d d l m Z m	 Z	 d d l
 Z
 d d l m Z m Z m Z m Z m Z m Z m Z d d l j j Z d d l m Z d d l Z d d l m Z m Z m Z m Z m Z m  Z  d d l! m" Z" m# Z# m$ Z$ m% Z% d d l& j j' Z( d d	 l) m* Z* d d l+ j, Z, e j- d
 e" f d     Y Z. d   Z/ d S(   s    Test cases for DataFrame.plot iÿÿÿÿ(   t   datet   datetimeN(   t   randt   randn(   t   PY3t   lmapt   lranget   lzipt   ranget   ut   zip(   t   is_list_like(   t	   DataFramet
   MultiIndext   PeriodIndext   Seriest   bdate_ranget
   date_range(   t   TestPlotBaset   _check_plot_workst   _ok_for_gaussian_kdet   _skip_if_no_scipy_gaussian_kde(   t   pprint_thingt   TestDataFramePlotsc        	   B   s)	  e  Z d    Z d   Z d   Z e j j d    Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z e j j d
    Z e j j d    Z e j j d    Z e j j d    Z e j j d    Z d   Z d   Z d   Z e j j d    Z d   Z d   Z e j j d    Z d   Z e j j d d  d    Z e j j d    Z e j j d    Z e j j d    Z  d   Z! d   Z" e j j d    Z# d    Z$ d!   Z% d"   Z& d#   Z' d$   Z( d%   Z) e j j d&    Z* d'   Z+ e j j d(    Z, e j j d)    Z- e j j d*    Z. e j j d+    Z/ e j j d,    Z0 e j j d-    Z1 e j j d.    Z2 e j j d/    Z3 e j j d0    Z4 e j j d1    Z5 e j j d2    Z6 e j j d3    Z7 e j j d4    Z8 d5   Z9 e j j d6    Z: d7 e; e; d8 d9 d9 d:  Z< e j j d;    Z= e j j d<    Z> e j j d=    Z? e j j d>    Z@ e j j d?    ZA e j j d@    ZB e j j dA    ZC e j j dB    ZD e j j dC    ZE e j j dD    ZF e j j dE    ZG e j j eH jI dF     ZJ e j j eH jI dG     ZK e j j dH    ZL d d d d dI  ZN e j j dJ    ZO e j j dK    ZP e j j dL    ZQ dM   ZR e j j dN    ZS e j j dO    ZT e j j dP    ZU e j j dQ    ZV e j j dR    ZW e j j dS    ZX e j j dT    ZY e j j dU    ZZ e j j eH jI dV     Z[ e j j eH jI dW     Z\ e j j dX    Z] dY   Z^ dZ   Z_ d[   Z` d\   Za e j j d]    Zb d^   Zc e j jd d_ d` da g db dc f db g d` da g dd de g f db d` da g df f g  dg    Ze e j jd dh d db g d` f g  di    Zf e j jd dj db d` g dd g dk g f db d` da g dd de g dk dl g f dm dn do g dp dq g dr ds g f g  dt    Zg e j jd du dm dn db d` g f dn dm dm dn g f g  dv    Zh e j j dw    Zi e j j dx    Zj e j j dy    Zk e j j dz    Zl e j j d{    Zm e j j d|    Zn d}   Zo e j j d~    Zp e j j d    Zq e j j d    Zr e j j d    Zs d   Zt eH ju d    Zv d   Zw e j j d    Zx e j j d    Zy d   Zz e j j d    Z{ e j j d    Z| e j j d    Z} d   Z~ d   Z d   Z d   Z e j jd d d d d7 g  d    Z RS(   c         C   s   t  j |  |  d d  l } | j   t j   |  _ t i t j	 j
 d d  d 6t j	 j
 d d  d 6t j d  t j	 j
 d d  d 6 |  _ d  S(   Niÿÿÿÿt   sizei   t   At   Bt   C(   R   t   setup_methodt
   matplotlibt
   rcdefaultst   tmt   makeTimeDataFramet   tdfR   t   npt   randomt   uniformt   aranget	   hexbin_df(   t   selft   methodt   mpl(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyR   !   s    
c         C   s=   x6 t  | |  D]% \ } } |  j | j   d | q Wd  S(   Nt   visible(   R
   t   _check_visiblet   get_yticklabels(   R'   t   axest   expectedt   axt   exp(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _assert_ytickslabels_visibility,   s    c         C   s=   x6 t  | |  D]% \ } } |  j | j   d | q Wd  S(   NR*   (   R
   R+   t   get_xticklabels(   R'   R-   R.   R/   R0   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _assert_xtickslabels_visibility0   s    c   	      C   s  |  j  } t | j d t t j t   t | j d t } Wd  QX|  j | d d d d2 t j t    t | j d t d d3 } Wd  QX|  j | d d d d4 t j t    t | j d t d	 t } Wd  QX|  j | d d d d5 t	 i d d g d
 6d d g d 6 } t
 j t d d  | j j d t  Wd  QXt	 t j j d d  d t t j d   } t | j d	 t t | j d t t | j d d d d g t | j d d d d g t | j d d6 d d7 t j t   t | j d t d d Wd  QX| j d t d d  } |  j | d d d d8 xy | d  D]m } |  j | j  |  j | j   d t |  j | j d t  d t |  j | j j   g d t qYWxd | d g D]U } |  j | j  |  j | j    |  j | j j   g  |  j | d d qØWt | j d d t t j d  t d   } t	 t j j d d  d t j |  } t | j d	 t t j t d   d f t d   d f t d!  d f t d!  d f t d"  d f t d"  d f t d#  d$ f t d#  d% f g d& d' d( g } t j d) t d*  f d) t d+  f g d& d, d- g } t	 t j j d d d9  d/ | d | } t | j d t d0  t	 i t j j d  d
 6 } t | j j d t } |  j | d d d d: t | j j d t d d; } |  j | d d d d< |  j  j!   \ } } | j j d t d1 |  } t" |  d k s{t#  | j$ } | | d k st#  d  S(=   Nt   gridt   subplotst   axes_numi   t   layouti   iÿÿÿÿi   t	   use_indext   xi   t   yt   matchs   Unknown property blargt   blargi
   t   indext   sort_columnst   yticksi   t   xtickst   ylimiÿÿÿid   t   xlimt   titlet   blahR*   t   minort   xroti    s   \u03b1s   \u03b2s   \u03b3s   \u03b4i   i   t   namest   i0t   i1t   bars   \u0394s   \u0395t   c0t   c1i   t   columnss   \u03A3R/   (   i   i   (   iÿÿÿÿi   (   i   i   (   i   i   (   iÿÿÿid   (   iÿÿÿid   (   i   i   (   i   i   (   i   i   (   iÿÿÿÿi   (   i   i   (%   R!   R   t   plott   FalseR   t   assert_produces_warningt   UserWarningt   Truet   _check_axes_shapeR   t   pytestt   raisest   AttributeErrort   lineR"   R#   R   t   listt   stringt   ascii_lettersR+   t   xaxisR2   t	   get_labelt   _check_ticks_propsR   R   R   t   from_tuplesR	   t   randintRJ   t   pltR5   t   lent   AssertionErrorR-   (	   R'   t   dfR-   R/   t   tuplesR=   RM   t   figt   result(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt	   test_plot4   s    	&#$		c         C   su   g  t  d  D] } d t |  ^ q } t t d d  d d d d g } x! | D] } t | j d | qT Wd  S(	   Ni
   R   i   RM   t   at   bt   ct   color(   R   t   strR   R   R   RN   (   R'   R9   t   colorsRc   Rj   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_mpl2_color_cycle_str   s    )$c         C   s6   t  i d d d g d 6 } t | j d d g d  S(   Ni   i   i   R   Rk   t   red(   R   R   RN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_color_single_series_list   s    c         C   sh   t  i d d g d 6d d g d 6 } t | j d d d d d d
 t | j d d d d d d d  S(   Ni   i   R9   i   i   R:   Rk   i    g      à?(   i   i    i    (   i   i    i    g      à?(   R   R   RN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_rgb_tuple_color   s    &c         C   s?   t  t d d   } t j t   | j d d  Wd  QXd  S(   Ni
   i   Rk   t    (   R   R   RT   RU   t
   ValueErrorRN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_color_empty_string¥   s    c      
   C   sú   t  i d d g d 6d d g d 6 } | j d d d	 g d
 d d g  } g  | j D] } | j   ^ qT } | d d g k s t  g  | j D] } | j   ^ q } | d d	 g k sŸ t  t j t  ' | j d d d	 g d
 d d g  Wd  QXd  S(   Ni   i   R9   i   i   R:   Rk   Ro   t   blackt   stylet   -s   --s   k-s   r--(	   R   RN   t   linest   get_linestyleRb   t	   get_colorRT   RU   Rs   (   R'   Rc   R/   RW   t	   linestyleRk   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_color_and_style_argumentsª   s    &$""c         C   sZ   t  i d d d g d 6d d d g d 6 } | j   } t | j    d k sV t  d  S(	   NR9   R:   t   zR   i   i   i   R   (   R   RN   Ra   t	   get_linesRb   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_nonnumeric_excludeº   s    ,c         C   sY   t  t d d  d d d d g } | j d d d d  } |  j | j j   d  d  S(	   Ni
   i   RM   Rh   Ri   Rj   R9   R:   (   R   R   RN   t   _check_text_labelsR[   R\   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_implicit_label¿   s    $c         C   s_   t  t d d  d d d g } d | j _ | j d d d d  | j j d k s[ t  d  S(	   Ni   RM   Rh   Ri   t   NAMER:   t   labelt   LABEL(   R   R   R=   t   nameRN   Rb   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_donot_overwrite_index_nameÅ   s    !c      
   C   s  |  j  } |  j | j d d d d  | j d  d j    |  j | j d d  | j d  j    |  j | j d d  | j j    |  j | j d d d d  | j d  j j    |  j | j d d  | j d  j    |  j | j d d  | j j    t d t | j  d  | _ |  j | j d d d d  | j d  d j    |  j | j d d  | j d  j    |  j | j d d  | d j    | j d d d d d d	 d
 d  } |  j | j	 d	  |  j
 | d d d d d
 d d  S(   NR9   i    R:   i   R   R   i   RC   t   Testt   figsizei   i   R6   R7   g      0@g       @(   i   i   (   i   i   (   g      0@g       @(   R!   t   _check_dataRN   t	   set_indexR   R   Ra   RM   R   RC   RS   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plot_xyÍ   s    	5+%4+%5+&$c         C   s€   t  i t j d  d 6d t j d  } | j d t  } |  j | d d | j d t  } |  j | d d | j d	 t  } |  j | d d d d d  S(
   Nid   Rh   R=   t   logyt   yaxist   logt   logxR[   t   loglog(   R   R"   R%   RN   RR   t   _check_ax_scales(   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_logscalesç   s    +c         C   sè  d d  l  } |  j } | j d t  } | j   } t | d j   t  sS t  t	 j
   t | j j d <| j   } | j   } t | d j   t  s¥ t  t	 j
   t | j j d <| j   } | j   } t | d j   t  s÷ t  t t | d j    t  st  t	 j
   | j j j d t  = | j   } | j   } t | d j   t  swt  Wd  QXt	 j
   | j   } | j   } t | d j   t  s¿t  t t | d j    t  sät  d  S(   Niÿÿÿÿt   x_compati    s   xaxis.compat(   t   pandasR!   RN   RR   R~   t
   isinstancet	   get_xdataR   Rb   R   t   closet   plottingt   plot_paramsRO   t   use(   R'   t   pdRc   R/   Rx   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_xcompató   s4    	 
 
 %
&
 c      	   C   sy   t  t j j d d  d t t d d d  t d d d   d d d	 g } | j   |  j j d
 d  t	 j
   d  S(   Ni   i   R=   iÐ  i   i   RM   Rh   Ri   R:   i    (   R   R"   R#   R   R   R   RN   R`   t   axhlineR   R   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_period_compat  s    '
c         C   sj  t  i t j d  d 6d t j d d d  d t j } | j   } | j   d } | j   } t | d  d   d f | d  d   d f d t j d	 d } t j	 | | j
 d
 t t j   t j t j d d d  d t j | _ | j   } | j   d } | j   } t | d  d   d f | d  d   d f d t j d	 d } t j	 | | j
  d  S(   Nid   R:   R=   ic   iÿÿÿÿt   dtypei    i   R   t   check_index_type(   R   R"   R%   t   int64RN   R~   t
   get_xydataR   R   t   assert_series_equalR:   RO   R   R   t   Indext   float64R=   (   R'   Rc   R/   Rx   t   rs(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_unsorted_index#  s    .>
*>c      
   C   s0  t  i d d d d g d 6d d d d d g } | j   } | j   \ } } | j   } | t j | d j   d  k s t  | t j | d j   d  k s­ t  t  i d d t j	 d d d	 d
 g d 6d d d d d t j	 d d g } | j   } | j   \ } } | j   } | t j | d j   d  k sIt  | t j | d j   d  k srt  t  i d d d d g d 6d d d d g d 6 } | j d d d d  } | j   \ } } | j   } | t j | d j   d  k st  | t j | d j   d  k s,t  d  S(   Ng        g      ð?g       @g      @R:   R=   i    g      @g      @g      @g     ÀV@g     V@g     @W@g      W@R}   R9   (
   R   RN   t   get_xlimR~   R"   t   nanmint   get_dataRb   t   nanmaxt   nan(   R'   Rc   R/   t   xmint   xmaxRx   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_unsorted_index_lims4  s&    1))(!))2)c      
   C   sÀ  t  t j j d d  d t t j d   } xd d d d g D]w} | j d | d	 t d
 t d t  } |  j	 | d d d d | j
 d k s t  x< t | | j  D]( \ } } |  j | d t |  g q¬ Wx | d  D]} } |  j | j  |  j | j   d t |  j | j d t  d t |  j | j j   d t |  j | j    qã W|  j | d j  |  j | d j    |  j | d j d t   |  j | d j j    |  j | d j    | j d | d	 t d
 t  } xs | D]k } |  j | j  |  j | j    |  j | j d t   |  j | j j    |  j | j    qW| j d | d	 t d t  } x& | D] } | j   d  k st  qWqA Wd  S(   Ni
   i   R=   RJ   t   barhRW   t   areat   kindR5   t   sharext   legendR6   R7   i   t   labelsiþÿÿÿR*   RE   iÿÿÿÿ(   i   i   (   i   (   R   R"   R#   R   RX   RY   RZ   RN   RR   RS   t   shapeRb   R
   RM   t   _check_legend_labelsR   R+   R[   R2   RO   R\   R,   t
   get_legendt   None(   R'   Rc   R²   R-   R/   t   column(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplotsK  s>    $c         C   s  t  i d d d d d g d 6d d d d d	 g d
 6d d d d d g d 6d d d d d d g } | j d  j   } t t t t g } |  j | |  | j d  j d t  } t t t t g } |  j | |  | j d  j d t  } t t t t g } |  j | |  d  S(   Ngáz®Gáö¿g333333Ã¿gÀgìQžëÁ¿Rh   gìQžëá?gáz®Gáê?gÂõ(\Ò?g333333ë?Ri   i    i   i   i   Rj   R=   i   t   sharey(   R   t   groupbyt   boxplotRR   RO   R1   (   R'   Rc   R-   R.   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_groupby_boxplot_shareys  s    c         C   s  t  i d d d d d g d 6d d d d d	 g d
 6d d d d d g d 6d d d d d d g } | j d  j   } t t t t g } |  j | |  | j d  j d t  } t t t t g } |  j | |  | j d  j d t  } t t t t g } |  j | |  d  S(   Ngáz®Gáö¿g333333Ã¿gÀgìQžëÁ¿Rh   gìQžëá?gáz®Gáê?gÂõ(\Ò?g333333ë?Ri   i    i   i   i   Rj   R=   i   R³   (   R   Rœ   RŸ   RR   R3   RO   (   R'   Rc   R-   R.   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_groupby_boxplot_sharex  s    c         C   se  t  d d d d d d  } t t j j d d  d | } x"d	 d
 g D]} | j d | d t d t  } |  j | d d d d x | d  D]} } |  j | j	  |  j | j
   d t |  j | j
 d t  d t |  j | j	 j   d t |  j | j    q W|  j | d j	  |  j | d j
    |  j | d j
 d t   |  j | d j	 j    |  j | d j    |  j | d d | j d | d t d t d d d d  } x | D] } |  j | j	  |  j | j
    |  j | j
 d t   |  j | j	 j    |  j | j    |  j | d d d d d d qÏWqI Wd  S(   Nt   starts
   2014-07-01t   freqt   Mt   periodsi
   i   R=   RW   R±   R²   R5   R³   R6   R7   i   iþÿÿÿR*   RE   iÿÿÿÿRF   i    t   roti-   t   fontsizei   t
   xlabelsizet
   ylabelsize(   i   i   (   R   R   R"   R#   R   RN   RR   RS   R+   R[   R2   RO   R\   R,   R]   (   R'   t   idxRc   R²   R-   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_timeseriesŠ  s8    !!	c         C   s  i t  j d d d g  d 6t j d d d t j d d d	 t j d d d
 g d 6t j d  t j d  t j d  g d 6t j d d t t j d d t t j d d t g d 6d d d g d 6} t |  } | j d d  } | j   d j	   d | d j
 k j   s%t  | j d d  } | j   d j	   d | d j
 k j   sjt  | j d d  } | j   d j	   d | d j
 k j   s¯t  | j d d  } | j   d j	   d | d j
 k j   sôt  t j t   | j d d  Wd  QXd  S(   Ni   i   i   t   numericiöÿÿÿt   unitt   si
   t   mt   ht	   timedeltas   2017-08-01 00:00:00s   2017-08-01 02:00:00s   2017-08-02 00:00:00t   datetime_no_tzt   utct   datetime_all_tzt   Thist   shouldt   failt   textR:   i    (   R"   t   arrayR   t	   Timedeltat   to_datetimeRR   R   RN   R~   Rª   t   valuest   allRb   RT   RU   t	   TypeError(   R'   t   datat   testdatat
   ax_numerict   ax_timedeltat   ax_datetime_no_tzt   ax_datetime_all_tz(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_timeseries_y_axisÊ  s:    t   reasons6   not support for period, categorical, datetime_mixed_tzc         C   s¯  i t  j d d d g  d 6t j d d d t j d d d t j d	 d d g d
 6t j d d d g d d d d g d t d 6t j d d t t j d  t j d	  g d 6} t j |  } | j	 d d d d
  } | j
   d j   d | d
 j k j   st  | j	 d d d d  } | j
   d j   d | d j k j   s`t  | j	 d d d d  } | j
   d j   d | d j k j   s«t  d S(   sÇ  
        This test will fail for:
            period:
                since period isn't yet implemented in ``select_dtypes``
                and because it will need a custom value converter +
                tick formater (as was done for x-axis plots)

            categorical:
                 because it will need a custom value converter +
                 tick formater (also doesn't work for x-axis, as of now)

            datetime_mixed_tz:
                because of the way how pandas handels ``Series`` of
                ``datetime`` objects with different timezone,
                generally converting ``datetime`` objects in a tz-aware
                form could help with this problem
        i   i   i   RË   s   2017-08-01 00:00:00RÂ   t   Hs   2017-08-01 02:00s   2017-08-02 00:00:00t   periodRj   Ri   Rh   t
   categoriest   orderedt   categoricalRÒ   s   2017-08-01 02:00:00t   datetime_mixed_tzR9   R:   i    N(   R"   RØ   R   t   Periodt   CategoricalRO   RÚ   RR   R   RN   R~   Rª   RÛ   RÜ   Rb   (   R'   RÞ   Rß   t	   ax_periodt   ax_categoricalt   ax_datetime_mixed_tz(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt-   test_subplots_timeseries_y_axis_not_supportedë  s,    
	c         C   sâ  t  t j j d d  d t t j d   } | j d t d d  } |  j	 | d d d d | j
 d k st t  | j d t d d  } |  j	 | d d d d | j
 d k sº t  | j d t d d  } |  j	 | d d d d | j
 d k s t  | j d t d d  } |  j	 | d d d d | j
 d k sFt  | j d t d d  } |  j	 | d d d d | j
 d k st  | j d t d d  } |  j	 | d d d d | j
 d k sÒt  t j t   | j d t d d  Wd  QXt j t   | j d t d d  Wd  QXt  t j j d d	  d t t j d   } | j d t  } |  j	 | d d	 d d | j
 d  k st  | j d t d d!  } |  j	 | d d	 d d" | j
 d# k sÞt  d  S($   Ni
   i   R=   R5   R7   i   R6   iÿÿÿÿi   i   (   i   i   (   i   i   (   i   i   (   iÿÿÿÿi   (   i   i   (   i   i   (   i   iÿÿÿÿ(   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   iÿÿÿÿi   (   i   i   (   i   i   (   i   iÿÿÿÿ(   i   i   (   i   i   (   i   i   (   iÿÿÿÿiÿÿÿÿ(   i   i   (   i   (   i   i   (   i   i   (   i   i   (   R   R"   R#   R   RX   RY   RZ   RN   RR   RS   R¶   Rb   RT   RU   Rs   (   R'   Rc   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_layout  s@    c         C   s   t  j d   y t t j j d d   } | j d t d d
  t t j j d d  d t	 d d	 d } | j d t d d  Wd  QXd  S(   Nid   i   R5   R7   i   i   R=   s   1/1/2000RÄ   (   i   i   (   i   i   (
   R   RP   R¹   R   R"   R#   R   RN   RR   R   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_warningsD  s    c         C   s§  |  j  j d d  \ } } t t j j d d  d t t j d   } | j	 d t
 d | d d t d	 t  } |  j | d
 d d d | j d k s t  | d j | k sž t  | j	 d t
 d | d d t d	 t  } |  j | d
 d d d | j d k st  | d j | k s't  |  j | d
 d d d t j   t j t  6 |  j  j d d  \ } } | j	 d t
 d |  Wd  QX|  j  j d d  \ } } t j   t j d t  t t j j d d  d t t j d   } | j	 d t
 d | d d d t d	 t  } |  j | d
 d d d | j d k sOt  | j	 d t
 d | d d d t d	 t  } |  j | d
 d d d | j d k s§t  | j	 d t
 d | d d d t d	 t  } Wd  QX|  j | d
 d d d | j d k st  |  j  j d d  \ } } t t j j d d  d t t j d   } | j	 d t
 d | g d t d	 t  } |  j | d
 d d d | j d  k s£t  d  S(!   Ni   i   i
   R=   R5   R/   i    R³   RŒ   R6   R7   i   i   t   ignorei   iÿÿÿÿ(   i   i   (   i   (   i   i   (   i   (   i   i   (   i   i   (   i   i   (   i   (   i   iÿÿÿÿ(   i   i   (   i   (   iÿÿÿÿi   (   i   i   (   i   (   i   i   (   i   (   R`   R5   R   R"   R#   R   RX   RY   RZ   RN   RR   RO   RS   R¶   Rb   t   figureR   R   RT   RU   Rs   t   warningst   catch_warningst   simplefilterRQ   (   R'   Re   R-   Rc   t   returned(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_multiple_axesO  sR    		
'c      
   C   s   |  j  j d d d t d t \ } } |  j  j d d d d d d	 d
 d	  t t j j d d  d t d d d d d d  } x: t	 | j
    D]& \ } } | | j d | d d  q Wx4 | d d !j
   D] } |  j | j   d t qÓ Wx1 | d j
   D] } |  j | j   d t qWxC | d d d g d g f j
   D] } |  j | j   d t qMWxC | d d d g d g f j
   D] } |  j | j   d t qWxC | d d d g d g f j
   D] } |  j | j   d t qÙWd  S(   Ni   R³   RŒ   t   leftg©?t   rightgffffffî?t   hspaceg333333Ó?t   wspacei
   i	   R=   RÁ   s
   2014-07-01RÂ   RÃ   RÄ   R/   RÆ   i   i    iÿÿÿÿR*   i   i   (   R`   R5   RR   t   subplots_adjustR   R"   R#   R   R   t	   enumeratet   ravelRN   R+   R2   RO   R,   (   R'   Re   R-   Rc   t   iR/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_ts_share_axes  s"    '%)))c         C   s  i d d d d g d 6d d d d g d 6d d d	 d
 g d 6} t  | d t d d  } | d d g j d t  } | d j d | d d t  |  j | d j   d t |  j | d j   d t x- | j   D] } |  j | j   d t qÛ Wd  S(   Ng      ð?g       @g      @g      @R   R   i   i   i   i   R   R=   s
   2014 10 11s
   2014 10 14R5   R/   i    t   secondary_yR*   (	   R   R   RN   RR   R+   R2   RO   R  R,   (   R'   t   dRc   R-   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt'   test_subplots_sharex_axes_existing_axes§  s    ?c         C   sR  t  t j j d d  d t d  } | j d t  } x? | D]7 } |  j | d d g t | j	  d k s@ t
  q@ Wt j   | j d t d d  } x? | D]7 } |  j | d d g t | j	  d k s€ t
  q€ Wt j   | j d d  } |  j | d d	 g d t | j	  d
 k s0t
  t | j j	  d k sNt
  d  S(   Ni   RM   t   aaaaaR5   Rµ   Rh   i   R  s	   a (right)i    (   R   R"   R#   R   RX   RN   RR   R·   Ra   Rx   Rb   R   R   t   right_ax(   R'   Rc   R-   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_subplots_dup_columnsŽ  s    '

c      	   C   s   t  t d d  d t t j d   d d d d d g } t j t   | j j	 d	 t
  Wd  QXt j t   | j j	 d
 t
  Wd  QXd  S(   Ni   i   R=   RM   R9   R:   R}   t   fourR   R   (   R   R   RX   RY   RZ   RT   RU   Rs   RN   R±   RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_negative_logÊ  s    c         C   s{   t  j t | d j   d   } xQ t | |  D]@ \ } } | | j   d 7} | j   d } t j | |  q3 Wd  S(   Ni    i   (   R"   t   zerosRa   Rª   R
   R   t   assert_numpy_array_equal(   R'   t   normal_linest   stacked_linest   baset   nlt   slt   sy(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _compare_stacked_y_coodÔ  s
    #c         C   s=  t  j d  (t t d d  d d d d d g } | } t i t d  d 6t d  d 6t d  d 6t d  d 6 } t t d d  d	 t t j d   d d d d d g } xvd
 d g D]h} t | j	 d | d t
 } t | j	 d | d t } |  j | j | j  t | j	 d | d t
 } t | j	 d | d t } |  j | j | j  t | j	 d | d t
 } t | j	 d | d t } |  j | j d  | j d   |  j | j d | j d  t | j	 d t
 t j t   | j	 d t  Wd  QXt | j	 d | d t d t qÇ WWd  QXd  S(   Ni*   i   i   RM   t   wR9   R:   R}   R=   RW   R±   R²   t   stackedi   R   (   R   t
   RNGContextR   R   R   RX   RY   RZ   R   RN   RO   RR   R  Rx   RT   RU   Rs   (   R'   Rc   t   neg_dft   sep_dft   mixed_dfR²   t   ax1t   ax2(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_line_area_stackedÛ  s2    'c         C   sÍ  d d t  j d g } d t  j d d g } t i | d 6| d 6 } t i | d 6| d 6d t j d d  } xV| | g D]H} t | j  } | j d	 j   } | j d j   } t  j	 d d d g d
 t  j
 }	 t j t  j | j d  |	  t  j	 d d d g d
 t  j
 }	 t j t  j | j d  |	  t j | j t  j	 t t t t g   t j | j t  j	 t t t t g   t  j	 d d d	 d g d
 t  j
 }
 t  j	 d d	 d d g d
 t  j
 } t | j d t } t j | j d	 j   |
  t j | j d j   |
 |  t | j j  } t j | j d	 j   |
  t j | j d j   |
 |  t | j j d t } t j | j d	 j   |
  t j | j d j   |  q} Wd  S(   Ni   i   i   Rh   Ri   R=   t   ki   i    R   R  (   R"   R¬   R   R   t   makeDateIndexR   RN   Rx   t	   get_ydataRØ   R¥   R  t   deleteRÞ   t   maskRO   RR   R±   (   R'   t   values1t   values2Rc   R!   R  R/   t   masked1t   masked2R0   t	   expected1t	   expected2(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_line_area_nan_dfý  s<    !!""$$c         C   så  t  t d d  d d d d g } | j   } | j   \ } } | j   } | | d j   d d k sr t  | | d j   d d k s t  | j d	 t  } | j   \ } } | j   } | | d j   d d k sê t  | | d j   d d k st  | j d	 t d
 t  } |  j | d d d d x | D] } t	 | d  sat  t	 | d  swt  | j   \ } } | j   } | | d j   d d k s¹t  | | d j   d d k sFt  qFWd  S(   Ni   i   RM   R9   R:   R}   i    iÿÿÿÿR  R5   R6   R7   i   t   left_axR  (   i   i   (
   R   R   RN   Rš   R~   Rª   Rb   RR   RS   t   hasattr(   R'   Rc   R/   R­   R®   Rx   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_line_lim%  s(    $$$$$$c   
      C   s'  t  t d d  d d d d d g } | } xò t t g D]ä } t | j j d | } | j   \ } } | j   \ } } | j	   }	 | |	 d	 j
   d	 d	 k s­ t  | |	 d	 j
   d	 d
 k sÑ t  | d	 k sã t  t | j j d | } | j   \ } } | d	 k s; t  q; Wd  S(   Ni   i   RM   R9   R:   R}   R
  R  i    iÿÿÿÿ(   R   R   RR   RO   R   RN   R±   Rš   t   get_ylimR~   Rª   Rb   (
   R'   Rc   R  R  R/   R­   R®   t   ymint   ymaxRx   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_area_lim=  s    '$$c         C   s<  d d  l  j } |  j | j  } t t d d   } | j j   } |  j | j	 d  d  d  d | d  t
 j   d } | j j d |  } |  j | j	 d  d  d  d | t
 j   d d l m } | j j d d  } t | j t j d	 d
 d   } |  j | j	 d  d  d  d | t
 j   | j j d | j  } t | j t j d	 d
 d   } |  j | j	 d  d  d  d | t
 j   | j d  d   d	 g f j j d d  } |  j | j	 d	 g d d g t
 j   | j d d d d  } |  j | j	 d  d  d  d d g d t
 j   d  S(   Niÿÿÿÿi   t
   facecolorst   rgcbyRk   (   t   cmt   colormapt   jeti    i   t
   DodgerBlueR²   RJ   t   green(   t   matplotlib.pyplott   pyplott   _unpack_cyclert   rcParamsR   R   RN   RJ   t   _check_colorst   patchesR   R   R   R3  R   R5  R"   t   linspacet   loc(   R'   R`   t   default_colorsRc   R/   t   custom_colorsR3  t   rgba_colors(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_colorsN  s2    '
#
!#
!#
+ 
*c         C   sš   t  j i t d  d 6t d d  d 6d d d d g d 6 } | j j d	 d d | d  } g  | j D] } | j   ^ qh } d d d d g } | | k s€ t  d  S(   Ni   R   i   i   R   Ro   t   blueRk   R:   g      ð?g        (   g      ð?g        g        g      ð?(   g        g        g      ð?g      ð?(   g        g        g      ð?g      ð?(   g      ð?g        g        g      ð?(   R   R   R   RN   RJ   R=  t   get_facecolorRb   (   R'   Rc   R/   t   pRf   R.   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_user_colorsr  s    "	c         C   s  t  t d d   } | j j d d  } x) | j D] } | j   d k s4 t  q4 W| j j d t d d  } x) | j D] } | j   d k s{ t  q{ W| j j d d d t  } |  j | d d d d	 x: | D]2 } x) | j D] } | j   d k sè t  qè WqØ Wd  S(
   Ni   t	   linewidthi   R  R5   R6   R7   i   (   i   i   (	   R   R   RN   RJ   R=  t   get_linewidthRb   RR   RS   (   R'   Rc   R/   t   rR-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_linewidth  s    c         C   sù  t  t d d   } d } | j j d |  } x6 | j D]+ } | j   | t | j  k s: t  q: W| j j d t	 d |  } x) | j D] } | j   | k s t  q W| j j
 d |  } x6 | j D]+ } | j   | t | j  k sÏ t  qÏ W| j j
 d t	 d |  } x) | j D] } | j   | k s#t  q#W| j j d | d t	  } x: | D]2 } x) | j D] } | j   | k swt  qwWqgW| j j
 d | d t	  } x: | D]2 } x) | j D] } | j   | k sÏt  qÏWq¿Wd  S(   Ni   gÍÌÌÌÌÌì?t   widthR  R5   (   R   R   RN   RJ   R=  t	   get_widthRa   RM   Rb   RR   R°   t
   get_height(   R'   Rc   RL  R/   RJ  R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_barwidth  s,    )) c      
   C   s÷   t  t d d   } |  j | d d d t d d d d |  j | d d d t d d d d |  j | d d	 d t d d d d |  j | d d	 d t d d d d |  j | d d d
 t d d d d |  j | d d	 d
 t d d d d d  S(   Ni   R²   RJ   R  RL  gÍÌÌÌÌÌì?t   positiongÉ?R°   R5   (   R   R   t   _check_bar_alignmentRO   RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_barwidth_position»  s    c      	   C   ss  t  t d d   } xŒ d d g D]® } | j j d t d |  } | j j   } t j | t	 j
 d d d d d	 g   | j   d k s t  | j d j   d k s± t  | j d j   d k s" t  q" W|  j | d d d t d d |  j | d d d t d d |  j | d d d t d d |  j | d d d t d d |  j | d d d t d d d  S(   Ni   i   g      ð?R  RL  i    i   i   i   g      è¿g      @g      à¿iÿÿÿÿg      @R²   RJ   R°   R5   (   g      è¿g      @(   R   R   RN   RJ   RR   R[   t   get_ticklocsR   R  R"   RØ   Rš   Rb   R=  t   get_xRQ  RO   (   R'   Rc   R  R/   t   ticks(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_barwidth_position_intË  s    (#c      
   C   s¥  t  t d d   } | j j d t d d  } g  | j D] } | j   ^ q: } | d g d k sk t  | j j d t d d d d d	 d
 g  } g  | j d  D] } | j   ^ q£ } | d d d d	 d
 g k sÜ t  | j j	 d t d t
 j d d d d d g   } g  | j D] } | j   ^ q} | d g d k sJt  | j j	 d t d d d d d d g  } g  | j d  D] } | j   ^ q} | d d d d d g k s»t  | j j d t d d  } xI | D]A } g  | j D] } | j   ^ qí} | d g d k sÝt  qÝW| j j	 d t d t
 j d d d d d g   } xI | D]A } g  | j D] } | j   ^ ql} | d g d k s\t  q\Wd  S(   Ni   R  t   bottomi   i   iÿÿÿÿiþÿÿÿiýÿÿÿiüÿÿÿiûÿÿÿRû   i   i   i   R5   (   R   R   RN   RJ   RO   R=  t   get_yRb   RR   R°   R"   RØ   RT  (   R'   Rc   R/   RF  Rf   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_bottom_leftß  s*    "*&!3"*&!"3"c      	   C   sE  t  i d t j d g d 6d d d g d 6d d d g d	 6 } | j j   } d d
 d d d d d d d g	 } g  | j D] } | j   ^ qy } | | k s£ t  | j j d t  } g  | j D] } | j   ^ qÂ } | | k sì t  g  | j D] } | j	   ^ qö } d d d d d d d d d g	 } | | k sAt  d  S(   Ni
   i   R   i   R   i   i   i   R   i    R  g        g      $@g      4@g      .@g      D@(
   R   R"   R¬   RN   RJ   R=  RN  Rb   RR   RX  (   R'   Rc   R/   R.   RF  Rf   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_nanü  s    !"""!c      
   C   sà  t  j t j j d d  d t  j t d   d t  j t d   } t  j t j j d d  d t  j t d   d t  j t d   } xI| | g D];} | j j	   } | j
 j   } t j | t j d d d	 d
 d d g   | j   d k st  | j d j   d k s#t  | j d j   d k sBt  | j j	 d t  } t j | t j d d d	 d
 d d g   | j   d k st  | j d j   d k s¹t  | j d j   d k s t  q Wd  S(   Ni   i   R=   t   ABCDEFRM   t   abcdei    i   i   i   i   g      à¿g      @g      Ð¿iÿÿÿÿg@R  g      @(   g      à¿g      @(   g      à¿g      @(   R   R   R"   R#   R   R€   RX   t   CategoricalIndexRN   RJ   R[   RS  R   R  RØ   Rš   Rb   R=  RT  RR   (   R'   t   df1t   df2Rc   R/   RU  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_categorical  s$    ++c         C   s  t  t d d  d t t j d   d d d d d g } t | j j d d d d t | j j d d	 d d
 t j	 t
   | j j d d  Wd  QXt j	 t
   | j j d d  Wd  QX| j d d d d d d d t  } |  j | d d	 d d d  S(   Ni   i   R=   RM   R9   R:   R}   R
  i   i   R²   t   scatterR5   R6   R7   (   i   i   (   R   R   RX   RY   RZ   R   RN   Ra  RT   RU   RÝ   RR   RS   (   R'   Rc   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plot_scatter(  s    $c         C   sd  t  j j d
  } t j | d d d d g } | j j d d d d  } | j j d d d d d	 d  } g  | j j   D] } | j   ^ q| } g  | j j   D] } | j   ^ q€ } | | k sÎ t	  g  | j j
   D] } | j   ^ qÞ } g  | j j
   D] } | j   ^ q} | | k s0t	  | j j   j   | j j   j   k s`t	  d  S(   Niè  i   RM   s   A labels   B labels   C labelR9   R:   Rj   (   iè  i   (   R"   R#   R   R   RN   Ra  R[   t   get_minorticklabelst   get_visibleRb   t   get_majorticklabelsR\   (   R'   t   random_arrayRc   R  R  t   vist   vis1t   vis2(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt5   test_if_scatterplot_colorbar_affects_xaxis_visibility:  s"    !%%%%c         C   sŽ   t  j j d  } t j | d d d d g } | j j d d d d } t d	   | j j   D  sp t	  t d
   | j j
   D  s t	  | j j   j   s° t	  d  S(   Niè  i   RM   s   A labels   B labels   C labelt   gridsizei   c         s   s   |  ] } | j    Vq d  S(   N(   Rd  (   t   .0Rg  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>_  s    c         s   s   |  ] } | j    Vq d  S(   N(   Rd  (   Rl  Rg  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>a  s    (   iè  i   (   R"   R#   R   R   RN   t   hexbinRÜ   R[   Rc  Rb   Re  R\   Rd  (   R'   Rf  Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt%   test_if_hexbin_xaxis_label_is_visibleU  s    		c         C   ss  d d  l  j } t j j d  } t j | d d d d g } | j d d	  \ } } | j j d d d
 d d | d | j j d d d
 d d | d | j	   t j
 g  | j D] } | j   j   ^ q·  } | d  d   d  d   d f } | d d  d   f | d d  d   f }	 | d d  d   f | d	 d  d   f }
 t j |	 |
 d d j   sot  d  S(   Niÿÿÿÿiè  i   RM   s   A labels   B labels   C labeli   i   Rj   R/   i    t   atolgH¯Œò×z>(   iè  i   (   R8  R9  R"   R#   R   R   R5   RN   Ra  t   tight_layoutRØ   R-   t   get_positiont
   get_pointst   iscloseRÜ   Rb   (   R'   R`   Rf  Rc   Re   R-   R/   t   pointst   axes_x_coordst   parent_distancet   colorbar_distance(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt5   test_if_scatterplot_colorbars_are_next_to_parent_axese  s    ##
	(**	c         C   s  t  j i d d d d g d 6t  j d d d d g  d	 6 } t j t  # } | j d d d	 d	 d
 d  Wd  QX| j d  t j t  # } | j d d	 d	 d d
 d  Wd  QX| j d  t j t  # } | j d d	 d	 d	 d
 d  Wd  QX| j d  d  S(   Ni   i   i   i   R9   Rh   Ri   Rj   R:   R²   Ra  s   requires y column to be numerics   requires x column to be numeric(   R   R   Rí   RT   RU   Rs   RN   R;   (   R'   Rc   t   ve(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt'   test_plot_scatter_with_categorical_datay  s    """"c   	   	   C   s  t  t d d  d t t j d   d d d d d g } | j j d d d d d	 d  | j j d d
 d d d	 d  g } xL | D]D } | j d
 j j	 d k sš t
  | j d
 j j d k s t
  q Wd } | j j d d d d d	 d d |  } | j d
 j j	 | k st
  | j j d d d d d	 d d t  } | j d
 j d  k sZt
  | j j d d
 d d d	 d  } | j d
 j d  k st
  |  j | j d d g t  i d d g d 6d d g d 6 } d d d d g } d d d d g } t j | | g  } | j j d d d d d	 |  } t j | j d
 j   |  t j d d g  } | j j d d d d d	 | d d  d  S(   Ni   i   R=   RM   R9   R:   R}   R
  Rj   i    i   i   t   Greyst	   cubehelixR4  t   colorbarRo   R1  RJ  R   i   R   g      ð?g        t   cmapt   spring(   R   R   RX   RY   RZ   RN   Ra  t   collectionsR~  R   Rb   R}  t   _labelRO   R¹   R<  R"   RØ   R   R  RE  (	   R'   Rc   R-   R/   R3  t   red_rgbat
   green_rgbat
   rgba_arrayt   float_array(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plot_scatter_with_c  s2    $#''!&!c         C   sK  t  i d d d g d 6d d d g d 6d d d g d 6 } t j t  * | j j d d d d d d d	 d
  Wd  QX|  j |  j j  } | j j d d d d d d  } t	 j
 | j d j   d t j |  j j | d    | j j d d d d d	 d  } t	 j
 | j d j   d t j d d d d g d t j  d  S(   Ni   i   i   Rh   Ri   Rj   R9   R:   Rk   R7  i    t   whiteR   (   R   RT   RU   RÝ   RN   Ra  R:  R`   R;  R   R  R  RE  R"   RØ   t   colorconvertert   to_rgbaR¥   (   R'   Rc   R@  R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_scatter_colors¿  s    <+! !c      	   C   sÎ  t  t d d  d t t j d   d d d d d g } t | j j  t | j j d	 t t	 j
 t   t | j j d
 t Wd  QXt | j j d t t  t d d  d t t j d   d t d  } t | j j  t  i d d g d 6d d g d 6 } t | j j  } |  j | d d | j j d d d d  } |  j | d d d d d d t | j j  } |  j | d d | j j d d d d  } |  j | d d d d d d d  S(   Ni   i   R=   RM   t   onet   twot   threeR
  RŽ   R5   R  i
   i   i    i   Rh   Ri   RF   iZ   RÅ   i#   RÆ   RÇ   RÈ   t   yroti7   i   (   R   R   RX   RY   RZ   R   RN   RJ   RO   R   RP   RQ   RR   R   R]   R°   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plot_barÏ  s*    &RJ   t   centerg      à?c         C   s  | j  d | d | d | d | d | d | d t  } |  j |  } xŒ| D]Ž}	 | d k r® |	 j }
 |	 j   \ } } t d	   |	 j D  } t d
   |	 j D  } nb | d k r
|	 j }
 |	 j	   \ } } t d   |	 j D  } t d   |	 j D  } n t
  t j | | d  t j | | d  |	 j d } | d k r| t k si| t k r| j   } | | j   | } nï | d k rÚ| t k rÚ| j   | j   t | j  | } | j   } n¡ | d k r'| t k sþ| t k r'| j   | j   | } | j   } nT | d k ru| t k ru| j   | j   t | j  | } | j   } n t
  |
 j   t j t |   k j   sšt  | d k rÑt j |
 j   d |  qL | d k rút j |
 j   d |  qL t
  qL W| S(   NR²   R  R5   t   alignRL  RP  R4   RJ   c         s   s   |  ] } | j    Vq d  S(   N(   RT  (   Rl  RF  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>û  s    c         s   s%   |  ] } | j    | j   Vq d  S(   N(   RT  RM  (   Rl  RF  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>ü  s    R°   c         s   s   |  ] } | j    Vq d  S(   N(   RX  (   Rl  RF  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>   s    c         s   s%   |  ] } | j    | j   Vq d  S(   N(   RX  RN  (   Rl  RF  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pys	   <genexpr>  s    g      Ð?i    R  t   edge(   RN   RR   t   _flatten_visibleR[   Rš   t   minR=  t   maxR   R-  Rs   R   t   assert_almost_equalRT  RM  RO   Ra   RM   RX  RN  RS  R"   R%   RÜ   Rb   (   R'   Rc   R²   R  R5   R  RL  RP  R-   R/   t   axist   ax_mint   ax_maxt   min_edget   max_edgeRF  R  R  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyRQ  î  sN    		$'$	-
c         C   s§   t  i d g d d 6t d  d 6d t d  } |  j | d d d t |  j | d d d t d	 d
 |  j | d d d t |  j | d d d t d	 d
 d  S(   Ni   i   R   R   R=   R²   RJ   R  RL  gÍÌÌÌÌÌì?R°   (   R   R   RQ  RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_stacked_center)  s
    3c         C   s§   t  i d g d d 6t d  d 6d t d  } |  j | d d d t |  j | d d d t d	 d
 |  j | d d d t |  j | d d d t d	 d
 d  S(   Ni   i   R   R   R=   R²   RJ   R  RL  gÍÌÌÌÌÌì?R°   (   R   R   RQ  RO   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_center2  s
    3c         C   s§   t  i d g d d 6t d  d 6d t d  } |  j | d d d t |  j | d d d t d	 d
 |  j | d d d t |  j | d d d t d	 d
 d  S(   Ni   i   R   R   R=   R²   RJ   R5   RL  gÍÌÌÌÌÌì?R°   (   R   R   RQ  RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_subplots_center:  s
    3c         C   s¬   t  t d   } |  j | d d d t |  j | d d d t |  j | d d d t |  j | d d d t |  j | d d d t |  j | d d d t d  S(   Ni   R²   RJ   R  R°   R5   (   R   R   RQ  RO   RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_align_single_columnB  s    c      
   C   sÏ  t  i d g d d 6t d  d 6d t d  } |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 |  j | d d d t d	 d
 |  j | d d d t d d d	 d
 d  S(   Ni   i   R   R   R=   R²   RJ   R  R  R  RL  gÍÌÌÌÌÌì?R°   R5   (   R   R   RQ  RR   RO   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_edgeL  s&    3c         C   s   t  j d d d d g  } t i d g d d 6t d d	  d
 6d t d  } | j j d t d t  } t j | j	 j
   |  d  S(   Ng¹?g      ð?g      $@id   i   i   R   i   i   R   R=   R4   R   (   R"   RØ   R   R   RN   RJ   RR   R   R  R   RS  (   R'   R.   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_log_no_subplotse  s    6c         C   s   t  j d d d d d d g  } t t d d g  t d d	 g  g  j j d
 t d t  } t j | d j	 j
   |  t j | d j	 j
   |  d  S(   Ng¹?g      ð?g      $@g      Y@g     @@g     Ã@iÈ   i,  iô  R   R5   i    i   (   R"   RØ   R   R   RN   RJ   RR   R   R  R   RS  (   R'   R.   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_bar_log_subplotsp  s
    !0c   
   
   C   s  |  j  } | d } | j   j } g  | D] } t |  ^ q) } t | j j  } |  j | j   |  t	 j
 | j j   t j d t |  d   t | j  |  j t |  k sÀ t  t st	 j t  # t | j j d t d t } Wd  QX|  j | d d d d |  j | d d	 xW t | |  D]C \ } } |  j | j   | g  t | j  |  j k s6t  q6Wn  | j j d
 d  } |  j | d d d d t	 j   t | j j  } t j d d d g  }	 | j j d |	  } | j   j } g  | D] } t |  ^ q} |  j | j   |  t	 j
 | j j   |	  t | j  |  j t |  k s|t  d  S(   Nt   heighti   R5   R   R6   i   R7   R   R   RÅ   i(   RF   R  i    i   i   t	   positions(   i   i   (   t   hist_dft   _get_numeric_dataRM   R   R   RN   t   boxR   R2   R   R  R[   RS  R"   R%   Ra   Rx   t   bp_n_objectsRb   R   RP   RQ   RR   RS   R   R
   R]   R   RØ   (
   R'   Rc   t   seriest   numeric_colsRj   Rµ   R/   R-   R   R€  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_boxplotz  s8    	
($%
c   	      C   s   |  j  } | j   j } g  | D] } t |  ^ q } | j j d d d d d t  } |  j | d d d d d	 d |  j | j	   |  t
 | j  |  j t
 |  k sµ t  t j t  ) t | j j d
 t d t d t } Wd  QX|  j | d d d d |  j | d d xT t | |  D]C \ } } |  j | j	   | g  t
 | j  |  j k s+t  q+Wt j d d d g  } | j j d | d t  } |  j | j	   |  t j | j j   |  t
 | j  |  j t
 |  k süt  d  S(   NRÅ   i2   RÆ   i   t   vertRF   i    R  RÈ   R5   R   R6   i   R7   i   R[   R   i   R€  (   i   i   (   R¥  RŠ  RM   R   RN   R§  RO   R]   R   R,   Ra   Rx   Rš  Rb   R   RP   RQ   R   RR   RS   R   R
   R"   RØ   R  R   RS  (	   R'   Rc   Rª  Rj   Rµ   R/   R-   R   R€  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_boxplot_vertical   s(    	!("c      	   C   sõ   t  t d d  d t t j d   d d d d d g } t j t   | j j	 d	 d
  Wd  QX| j j	 d	 d  } |  j
 | d  | j j	 d	 d  } |  j
 | d  | j j	   } |  j
 | d  | j j	 d	 d  } |  j
 | d  d  S(   Ni   i   R=   RM   R  R  R  R
  t   return_typet   NOTATYPEt   dictR-   t   both(   R   R   RX   RY   RZ   RT   RU   Rs   RN   R§  t   _check_box_return_type(   R'   Rc   Rf   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_boxplot_return_typeŒ  s    c         C   s°   |  j  } | j j d t  } t | t  s3 t  |  j | d  d d d d g xW d d d g D]F } | j j d	 | d t  } |  j | | d d d d g d
 t	 qb Wd  S(   NR5   t   expected_keysR£  t   weightt   categoryR°  R-   R±  R®  t   check_ax_title(
   R¥  RN   R§  RR   R   R   Rb   R²  R¹   RO   (   R'   Rc   Rf   t   tRù   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt!   test_boxplot_subplots_return_typeÐ  s    		c      
   C   s5  t    t t d d   } t | j d d } g  | j D] } t |  ^ q; } |  j | d | |  j | d d | j d d d d	 d
 d  } |  j | d d	 d d d d t	 j
 t    t | j d d d t } Wd  QX|  j | d d d d | j d d d t d t  } |  j | d d d  S(   Nid   i   R²   t   kdeRµ   RF   i    RÅ   i   RÆ   i   RÇ   RÈ   R5   R6   R7   i   R   R   R   (   i   i   (   R   R   R   R   RN   RM   R   R·   R]   R   RP   RQ   RR   RS   R   (   R'   Rc   R/   Rj   R.   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_kde_dfá  s    "c         C   sI   t    t t j j d d   } t j | j d <t | j d d d  S(	   NR   id   i   i    R²   Rº  (   id   i   (   i    i    (	   R   R   R"   R#   R$   R¬   R?  R   RN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_kde_missing_vals÷  s    c      
   C   s[  d d l  m } t t d d   } | d } t | j j  } g  | j D] } t |  ^ qK } |  j	 | d | t
 j t  # t | j j d t d t } Wd  QX|  j | d	 d d
 d |  j | d d | j j d d  } |  j | d d d d t
 j   t j j   r-i t d 6} n i t d 6} | j j d t d d |  } g  | j   D] }	 t |	 |  re|	 ^ qe}
 t
 j |
 d j   d  t
 j   | j j d t d d  } g  | j   D] }	 t |	 |  rÒ|	 ^ qÒ}
 t
 j |
 d j   d  t
 j   | j j d d d d d d  } |  j | d d d d d d d  S(    Niÿÿÿÿ(   t	   Rectangleid   i   i    Rµ   R5   R   R6   R7   i   R   R   RÅ   i(   RF   R  t   densityt   normedt
   cumulativet   binsg      ð?iþÿÿÿg      Y@i2   RÆ   i   t   orientationt
   horizontalRÈ   (   i   i   (   t   matplotlib.patchesRœ  R   R   R   RN   t   histRM   R   R·   R   RP   RQ   RR   RS   R   R]   R   R   t   _compatt   _mpl_ge_2_2_0t   get_childrenR   R  RN  (   R'   Rœ  Rc   R©  R/   Rj   R.   R-   t   kwargsR9   t   rects(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hist_df   s6    
"
.
.
!c         C   s8  t  j g  | D] } | j   ^ q  } t  j g  | D] } | j   ^ q5  } t  j g  | D] } | j   ^ q]  }	 t  j g  | D] } | j   ^ q  }
 | d  k	 rÅ t j | | d t	 n  | d  k	 rê t j | | d t	 n  | d  k	 rt j |	 | d t	 n  | d  k	 r4t j |
 | d t	 n  d  S(   Nt   check_dtype(
   R"   RØ   RX  RN  RT  RM  R¹   R   R  RO   (   R'   R=  t
   expected_yt
   expected_ht
   expected_xt
   expected_wRF  t   result_yt   result_heightt   result_xt   result_width(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _check_box_coord)  s     ((((


c         C   s^  t  i t j t j d d d d d g  t j d d d d	 d
 g   d 6t j t j d d d d d g  t j d d d d d g   d 6t j t j d d d d d g  t j d
 d	 d d d g   d 6d d d d g } t  i t j t j t j d d d d d g  t j d d d d d	 d
 g   d 6t j t j d t j d d d d g  t j d d d d d d g   d 6t j t j d d d t j d d g  t j d
 d	 d d d d g   d 6d d d d g } xt| | g D]f} | j j d d  } |  j | j d  d t j d d d d d g  d t j d d d d	 d
 g  |  j | j d d !d t j d d d d d g  d t j d d d d d g  |  j | j d d t j d d d d d g  d t j d
 d	 d d d g  | j j d d d t	  } |  j | j d  d t j d d d d d g  d t j d d d d	 d
 g  |  j | j d d !d t j d d d d	 d
 g  d t j d d d d d g  |  j | j d d t j d d d d d g  d t j d
 d	 d d d g  | j j d d d t	 d t	  } |  j | d j d t j d d d d d g  d t j d d d d	 d
 g  |  j | d j d t j d d d d d g  d t j d d d d d g  |  j | d j d t j d d d d d g  d t j d
 d	 d d d g  | j j d d d d  } |  j | j d  d t j d d d d d g  d t j d d d d	 d
 g  |  j | j d d !d t j d d d d d g  d t j d d d d d g  |  j | j d d t j d d d d d g  d t j d
 d	 d d d g  | j j d d d t	 d d  } |  j | j d  d t j d d d d d g  d t j d d d d	 d
 g  |  j | j d d !d t j d d d d	 d
 g  d t j d d d d d g  |  j | j d d t j d d d d d g  d t j d
 d	 d d d g  | j j d d d t	 d t	 d d  } |  j | d j d t j d d d d d g  d t j d d d d	 d
 g  |  j | d j d t j d d d d d g  d t j d d d d d g  |  j | d j d t j d d d d d g  d t j d
 d	 d d d g  qðWd  S(   Ni   i   i   i   i   i
   i	   i   i   i   R   R   R   RM   RÁ  RÍ  i    RÎ  R  i   i   i   i   i   R5   RÂ  RÃ  RÏ  RÐ  (
   R   R"   t   repeatRØ   R¬   RN   RÅ  RÕ  R=  RR   (   R'   t	   normal_dft   nan_dfRc   R/   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hist_df_coord>  s    '"!"!%-%'%'(!		c         C   s2   t  t d d   j   } t | j d t d  S(   Nid   i   RŽ   (   R   R   t   cumsumR   RN   RR   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plot_int_columns  s    c         C   sF  d d d d d d g } t  t d d  d d	 d
 d g } t  t d d  d d d d g } t  t d d  d d d d g } t  t d d  d d d d g } x!| D]} t |  sÇ q¯ n  | j d | d t  } |  j | d | j | j d | d t d |  } |  j | d | j | j d | d t d |  } |  j | d | j j | j  | j d | d d d |  } t	 | j j | j   t	 t
 | j   } |  j | d | q¯ W| j d t d d
  } |  j | d d	 d d g | j d t d |  } |  j | d d	 d d g | j d d d t d d d |  } |  j | d d	 d d d d d g t d d d }	 t  t d d  d d	 d
 d g d |	 } t  t d d  d d d d g d |	 } t  t d d  d d d d g d |	 } | j d t d d
  } |  j | d d	 d d g | j d t d |  } |  j | d d	 d d g | j d t d |  } |  j | d d	 d d d d d g | j j d  d	 d! d
 d" d#  } |  j | d d# g | j j d  d d! d d t d" d$ d |  } |  j | d d# g | j j d  d d! d d" d% d |  } |  j | d d# d% g | j d	  }
 |
 j d! d
  } |  j | d d
 g |
 j d! d
 d" d&  } |  j | d d& g |  j | j j   d	  |
 j d! d d" d' d |  } |  j | d d& d' g |
 j j   d
 d g k sBt  d  S((   NRW   RJ   R°   Rº  R±   RÅ  i   RM   Rh   Ri   Rj   R  t   et   ft   gRÏ   R  t   jR  t   lR²   RŽ   Rµ   R/   t   reverseR  s	   b (right)s	   h (right)s   1/1/2014RÄ   R=   R9   R:   R   t   data1t   data2t   data3t   LABEL_bt   LABEL_c(   R   R   R   RN   RR   R·   RM   RO   t   unionRX   t   reversedR   R   Ra  R   R   R[   R\   t   tolistRb   (   R'   t   kindsRc   R_  t   df3t   df4R²   R/   R.   t   indt   df5(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_df_legend_labels  sf    $$$$"$***!-'c      	   C   sR  t  t d d  d t j d d d d g  t j d d d d g  g } d d g | j _ | j   } | j j   } |  j	 | d	  t  t d
 d
   } | j d t
 d |  } | j j   } |  j	 | d	  d | j _ | j d t d |  } | j j   } |  j	 | d	  | j d t
 d |  } | j j   } |  j	 | d  d  S(   Ni   RM   Rh   Ri   R9   R:   t   groupt
   individuals   group,individuali   RŽ   R/   t   new(   R   R   R"   RØ   RM   RG   RN   t   legend_t	   get_titleR   RR   R   RO   (   R'   t   multiR/   t	   leg_titleRc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_legend_nameá  s$    !c         C   s   d d d d d d g } t  t d d  d d	 d
 d g } xK | D]C } t |  s[ qC n  | j d | d t  } |  j | d t qC Wd  S(   NRW   RJ   R°   Rº  R±   RÅ  i   RM   Rh   Ri   Rj   R²   RŽ   R*   (   R   R   R   RN   RO   R·   (   R'   Rê  Rc   R²   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_no_legendù  s    $c         C   sõ   d d  l  j } | j   } t t d d   } xŸ i d d 6d d 6d d	 6i d d 6d d 6d d d g d d g g D]x } | j   | j d
  | j d |  } xF t | j	   t
 |    D]( \ } } | j   | | k sÁ t  qÁ Wqu Wd  S(   Niÿÿÿÿid   i   t   ^i    t   +i   t   oi   io   Rv   (   R8  R9  t   gcfR   R   t   clft   add_subplotRN   R   R~   Ra   t
   get_markerRb   (   R'   R`   Re   Rc   t   markersR/   R  Rà  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_style_by_column  s    &
)c         C   st   t  d d g  } | j   } | j   d  k s6 t  | j d t  } | j   j   d j   d k sp t  d  S(   Ni   i   RŽ   i    R¹   (   R   RN   Rž   R¹   Rb   RR   t	   get_textst   get_text(   R'   RÍ   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_line_label_none  s
    c   
   	   C   s  d d l  m } d } t t d d   } | j d |  } |  j | j   d | t j   | j d |  } | j   } xA t	 | j   |  D]* \ } } | j
   | j
   k s t  q Wt j   | j d d  } t | j t j d	 d
 t |    }	 |  j | j   d |	 t j   | j d | j  } t | j t j d	 d
 t |    }	 |  j | j   d |	 t j   | j d  d   d	 g f j d d  } |  j | j d d g | j d d  } |  j | j   d d g d t j   d d d d d g } | j d |  } |  j | j   d | t j   t j t  - d d d d d g } t | j d | Wd  QXd  S(   Niÿÿÿÿ(   R3  R2  i   Rk   t
   linecolorsR4  R5  i    i   R6  Ro   s   #FF0000s   #0000FFs   #FFFF00s   #000000s   #FFFFFFs   #F00s   #00Fs   #FF0s   #000s   #FFF(   R   R3  R   R   RN   R<  R~   R   R   R
   Rz   Rb   R   R5  R"   R>  Ra   R?  Rx   RT   RU   Rs   R   (
   R'   R3  RA  Rc   R/   R  t   lines2t   l1t   l2RB  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_line_colors  s>    
""
'
'
( 

c         C   sS   d d d g } t  j t j j d d   j d |  t |  d k sO t  d  S(   NRJ  RÞ  Ri   i
   i   Rk   i   (   R   R   R"   R#   R   RN   Ra   Rb   (   R'   Rm   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_dont_modify_colorsQ  s    (c         C   s  d d l  m } |  j |  j j  } t t d d   } | j d t  } xE t	 | t
 |   D]. \ } } | g } |  j | j   d | qb Wt j   | j d t d d  } x* | D]" } |  j | j   d d g qœ Wt j   | j d t d d  } x* | D]" } |  j | j   d d g qWt j   d	 } | j d | d t  } x? t	 | t
 |   D]( \ } } |  j | j   d | g qpWt j   | j d t
 |  d t  } x? t	 | t
 |   D]( \ } } |  j | j   d | g qÚWt j   d
 d d d d g } | j d | d t  } x? t	 | t
 |   D]( \ } } |  j | j   d | g qSWt j   t j t  I d d d d d g } t j t   t | j d | d t Wd  QXWd  QXt | j t j d d t |    } xu d | j g D]d }	 | j d |	 d t  } x9 t	 | |  D]( \ } } |  j | j   d | g qHWt j   qW| j d  d   d g f j d d d t  } |  j | d j d d g | j d d d t  } x* | D]" } |  j | j   d d g qìWt j   t
 d	  }
 | j d |
 d t  } x9 t	 | |
  D]( \ } } |  j | j   d | g qPWt j   d  S(   Niÿÿÿÿ(   R3  i   R5   R  Rk   R  R7  R2  s   #FF0000s   #0000FFs   #FFFF00s   #000000s   #FFFFFFs   #F00s   #00Fs   #FF0s   #000s   #FFFi    i   R5  R4  R6  Rv   RJ  (   R   R3  R:  R`   R;  R   R   RN   RR   R
   RX   R<  R~   R   R   RT   RU   Rs   RP   RQ   R   R   R5  R"   R>  Ra   R?  Rx   (   R'   R3  R@  Rc   R-   R/   Rj   RA  RB  R~  t   styles(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt$   test_line_colors_and_styles_subplotsW  sf    "	
 
 
" 
" 
" 
%' . 
 c         C   sû  d d l  m } d d l m } d } t t d d   } | j j d |  } |  j | j	   d | g  | j
   D] } t | |  rv | ^ qv } |  j | d | | j   \ } }	 |  j | d | x& | D] }
 |
 j   d  k sÖ t  qÖ Wt j   | j j d	 d
  } t | j t j d d t |    } |  j | j	   d | g  | j
   D] } t | |  rd| ^ qd} |  j | d | | j   \ } }	 |  j | d | x& | D] }
 |
 j   d  k sÄt  qÄWt j   | j j d	 | j d t  } |  j | j	   d | g  | j
   D] } t | |  r4| ^ q4} g  | D]$ } | d | d | d d f ^ q\} |  j | d | | j   \ } }	 | } |  j | t |   d | x& | D] }
 |
 j   d k sÕt  qÕWd  S(   Niÿÿÿÿ(   R3  (   t   PolyCollectionR2  i   Rk   R  R1  R4  R5  i    i   R  i   g      à?(   R   R3  t   matplotlib.collectionsR  R   R   RN   R±   R<  R~   RÈ  R   t   get_legend_handles_labelst	   get_alphaR¹   Rb   R   R   R   R5  R"   R>  Ra   RO   (   R'   R3  R  RA  Rc   R/   Rû  t   polyt   handlesRµ   RÏ   t
   jet_colorsRj   t   jet_with_alphaR  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_area_colors€  sB    .
'.
.1c         C   s&  |  j  |  j j  } t t d d   } | j j   } |  j | j d  d  d  d | d  t	 j
   d } | j j d |  } |  j | j d  d  d  d | t	 j
   d d l m } | j j d d	  } t | j t j d
 d d   } |  j | j d  d  d  d | t	 j
   | j j d | j  } t | j t j d
 d d   } |  j | j d  d  d  d | t	 j
   | j d  d   d
 g f j j d d  } |  j | j d
 g d d g | j d d d d  } |  j | j d  d  d  d d g d t	 j
   d  S(   Ni   i
   R1  R2  Rk   iÿÿÿÿ(   R3  R4  R5  i    i   R6  R²   RÅ  R7  (   R:  R`   R;  R   R   RN   RÅ  R<  R=  R   R   R   R3  R   R5  R"   R>  R?  (   R'   R@  Rc   R/   RA  R3  RB  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hist_colorsÑ  s.    '
#
!#
!#
+ *c         C   s%  t    d d l m } d } t t d d   } | j j d |  } |  j | j   d | t	 j
   | j j d d  } t | j t j d	 d
 t |    } |  j | j   d | t	 j
   | j j d | j  } t | j t j d	 d
 t |    } |  j | j   d | d  S(   Niÿÿÿÿ(   R3  R2  i   Rk   R  R4  R5  i    i   (   R   R   R3  R   R   RN   Rº  R<  R~   R   R   R   R5  R"   R>  Ra   (   R'   R3  RA  Rc   R/   RB  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_kde_colorsó  s    
'
'c         C   s~  t    d d l m } |  j |  j j  } t t d d   } | j d d d t	  } x? t
 | t |   D]( \ } } |  j | j   d | g qo Wt j   | j d d d d	 d t	  } x* | D]" } |  j | j   d d	 g qÊ Wt j   | j d d d d
 d t	  } x* | D]" } |  j | j   d d
 g qWt j   d } | j d d d | d t	  } x? t
 | t |   D]( \ } } |  j | j   d | g qWt j   t | j t j d d t |    } x{ d | j g D]j }	 | j d d d |	 d t	  } x9 t
 | |  D]( \ } } |  j | j   d | g q*Wt j   qöW| j d  d   d g f j d d d d d t	  } |  j | d j d d g | j d d d d d t	  } x* | D]" } |  j | j   d d g qÚWt j   t d  }
 | j d d d |
 d t	  } x9 t
 | |
  D]( \ } } |  j | j   d | g qDWt j   d  S(   Niÿÿÿÿ(   R3  i   R²   Rº  R5   R  Rk   R  Ro   R2  i    i   R5  R4  R6  Rv   RJ  (   R   R   R3  R:  R`   R;  R   R   RN   RR   R
   RX   R<  R~   R   R   R   R5  R"   R>  Ra   R?  Rx   (   R'   R3  R@  Rc   R-   R/   Rj   RA  RB  R~  R  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt#   test_kde_colors_and_styles_subplots
  sN    " 
 
 
" 
' +	 
 c            sŠ  d d    f d  }   j   j j  } t t d d   } | j j d d  } | | | d | d | d  t j	   t
 d d	 d
 d d d d d  } | j j d | d d d d  } | | | d | d
 | d | d d  t j	   t
 d
 d d d  } | j j d | d d  } | | | d d d  t j	   d d l m } | j j d d d d  } t | j t j d d d   } | | | d | d | d  t j	   | j j d | j d d  } | | | d | d | d  t j	   | j j d d d d  } | | d d d d  | j j d d  d d d d  } | | d! d" d# d$ d  t j t  ' | j j d t
 d d d d   Wd  QXd  S(%   NR  c            sá   | d  k r d } n    j |  d d | g t |  d    j |  d d | g t |  d    j |  d d | g t |  d    j |  d d | g t |  d    j |  d d | g t |  d  d  S(   NR  t   boxesR  t   whiskerst   medianst   flierst   caps(   R¹   R<  Ra   (   t   bpt   box_ct
   whiskers_ct	   medians_ct   caps_ct   fliers_c(   R'   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyR<  G  s    	i   R®  R°  i    i   R  s   #572923R  s   #982042R  s   #804823R  s   #123456Rk   t   syms   r+RJ  Rj   RÎ   iÿÿÿÿ(   R3  R4  R5  i   i   R6  Ro   t   xxxxRD  (   i    i   i    (   i    i   i    (   i    i   i    (   i    i   i    (   i    i   i    (   R¹   R:  R`   R;  R   R   RN   R§  R   R   R°  R   R3  R   R5  R"   R>  RT   RU   Rs   (   R'   R<  R@  Rc   R  t   dict_colorsR3  R  (    (   R'   s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_boxplot_colorsE  sD    
!

!

!
c         C   s   d d  l  j } d d  l } t d  } | j d |  | j d <t t d d   } | j   } |  j | j  d  } |  j	 | j
   d | d  S(   Niÿÿÿÿt   rgbkRk   s   axes.prop_cyclei   i   R  (   R8  R9  t   cyclerRX   R;  R   R   RN   R:  R<  R~   (   R'   R`   R)  Rm   Rc   R/   R.   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_default_color_cycle  s    c      	   C   sÌ   t  t j d d d g  d t d d d  t d d d  t d d	 d  g d
 d g } | j   } | j d j   } | d | d k  s t  | j d j   } t	 j
 | t j d d d g   d  S(   Ng      @g       @g      ð?R=   iÜ  i
   i   i	   i   RM   t   testi    (   R   R"   RØ   R    RN   Rx   R   Rb   R   R   R  (   R'   Rc   R/   R@   t   ydata(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_unordered_ts  s    c         C   s²   t  i d d d g d 6 } xI t j j D]; } t |  sA q) n  | j d |  t | j |    q) WxC d d g D]5 } | j d d d | t | j |  d d  qu Wd  S(   Ni   i   i   R9   R²   Ra  Rm  (   R   R   t   _coret   _common_kindsR   RN   t   getattr(   R'   Rc   R²   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_kind_both_ways  s    c         C   se   t  t d   } xL t j j D]> } t |  s7 q n  t j t   | j	 d |  Wd  QXq Wd  S(   Nt   abcdR²   (
   R   RX   R   R.  R/  R   RT   RU   RÝ   RN   (   R'   Rc   R²   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_all_invalid_plot_data©  s    c         C   s;  t  j d   t t d d  d t } d | t j j | j d  d k <xL t	 j
 j D]> } t |  ss q[ n  t j t   | j d |  Wd  QXq[ WWd  QXt  j d   d	 g } t t d d  d t } d | t j j | j d  d k <x4 | D], } t j t   | j d |  Wd  QXqWWd  QXd  S(
   Ni*   i
   i   R   Rh   i    g      à?R²   R±   (   R   R  R   R   t   objectR"   R#   R   R¶   R   R.  R/  R   RT   RU   RÝ   RN   (   R'   Rc   R²   Rê  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt    test_partially_invalid_plot_data±  s    # 	#c         C   s?   t  t d d   } t j t   | j d d  Wd  QXd  S(   Ni
   i   R²   t   aasdf(   R   R   RT   RU   Rs   RN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_invalid_kindÅ  s    s   x,y,lblR   R   R   Rh   Ri   Rj   t   badlabelc         C   si   t  i d d g d 6d d g d 6d d g d	 6 } t j t  ! | j d
 | d | d |  Wd  QXd  S(   Ni   i   R   i   i   R   i   i   R   R9   R:   R   (   R   RT   RU   Rs   RN   (   R'   R9   R:   t   lblRc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_invalid_xy_argsÊ  s    3s   x,yc      	   C   s`   t  d d d g d d d g g d t d  } t j t   | j d	 | d
 |  Wd  QXd  S(   Ni   i   i   i   i   i   RM   t   AABR9   R:   (   R   RX   RT   RU   Rs   RN   (   R'   R9   R:   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_invalid_xy_args_dup_colsÕ  s    0s   x,y,lbl,colorsRo   RD  i    i   i   t   bokeht   cythonR7  t   yellowc      	   C   sŽ   t  i d d g d 6d d g d 6d d g d	 6 } t | j d
 d d | d | | j d
 | d | d | d |  } t | j  t |  k s t  |  j | j   d | d  S(   Ni   i   R   i   i   R   i   i   R   R9   R:   R   Rk   R  (   R   R   RN   Ra   Rx   Rb   R<  R~   (   R'   R9   R:   R9  Rm   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_y_listlikeß  s
    3$!s   x,y,colnamesc         C   sL   t  i d d g d 6d d g d 6 } | | _ t | j d | d | d  S(	   Ni   i   R   i   i   R   R9   R:   (   R   RM   R   RN   (   R'   R9   R:   t   colnamesRc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_xy_args_integerí  s    &	c         C   s¥   |  j  } | j j d d d d d d  } t | j  d k sE t  | j j d d d d d t  } t | d	 j j  d
 k s t  |  j	 | d d d d d  S(   NR9   R   R:   R   Rk  i
   i   R5   i    i   R6   R7   (   i   i   (
   R&   RN   Rm  Ra   R  Rb   RR   Rõ   R-   RS   (   R'   Rc   R/   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hexbin_basic÷  s    	!!"c      	   C   s   |  j  } | j j d d d d d d  } t | j  d k sE t  | j j d d d d d d d t j  } t | j  d k s t  d  S(   NR9   R   R:   R   R   i   t   reduce_C_function(   R&   RN   Rm  Ra   R  Rb   R"   t   std(   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hexbin_with_c	  s
    	!*c         C   s   |  j  } | j j d d d d  } | j d j j d k sC t  d } | j j d d d d d |  } | j d j j | k s t  d  S(	   NR9   R   R:   R   i    t   BuGnR|  R4  (   R&   RN   Rm  R  R~  R   Rb   (   R'   Rc   R/   R3  (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_hexbin_cmap	  s    	!c         C   sJ   |  j  } | j j d d d d d d   } | j d j d  k sF t  d  S(   NR9   R   R:   R   R}  i    (   R&   RN   Rm  R¹   R  R}  Rb   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_no_color_bar	  s    	!c         C   s   |  j  } | j j d d d d d d  } | j d j j d k sI t  t j t	  * | j j d d d d d d d d	  Wd  QXd  S(
   NR9   R   R:   R   R~  t   YlGni    R4  RG  (
   R&   RN   Rm  R  R~  R   Rb   RT   RU   RÝ   (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_allow_cmap$	  s
    	!c         C   s2  t  t j j d d  d d d d g d d d	 d
 d d g } t j t   | j j   Wd  QXt	 | j j d d } |  j
 | j | j  t	 | j j d d } |  j
 | j | j  t j t   t	 | j j d t } Wd  QXt |  t | j  k st  x$ | D] } |  j
 | j | j  qWx8 t | | j  D]$ \ } } | j   | k sGt  qGWd d d d d g } d d d	 d
 d g } t j t  ) t	 | j j d t d | d | } Wd  QXt |  t | j  k sôt  x7 | D]/ } |  j
 | j |  |  j | j d | qûWd  S(   Ni   i   RM   t   Xt   Yt   ZR=   Rh   Ri   Rj   R  RÜ  R:   i   R5   R   R   R   t   Dt   ERJ  RÞ  RÎ   Rµ   Rm   R1  (   R   R"   R#   R   RT   RU   Rs   RN   t   pieR   R   t   textsR=   R   RP   RQ   RR   Ra   RM   Rb   R
   t
   get_ylabelR<  R=  (   R'   Rc   R/   R-   t   ylabelRµ   t
   color_args(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_pie_df.	  s4    '!!c   
      C   sF  t  t j j d d   } x* t d  D] } t j | j | | f <q( W|  j j d d  \ } } | j	 j
 d t d | d t  d d d d	 g } x« t |  D] \ } } t |  } d
 | | <g  | j D] } | j   ^ qÍ }	 |	 | k s÷ t  g  | j   j   D] } | j   ^ q
| |  | | d k s¡ t  q¡ Wd  S(   Ni   t   ncolsR5   R/   RŽ   t   0t   1t   2t   3Rr   i   (   R   R"   R#   R   R   R¬   t   ilocR`   R5   RN   RQ  RR   R   RX   RR  R  Rb   Rž   R  (
   R'   Rc   R  Re   R-   t   base_expectedR/   R.   R9   Rf   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_pie_df_nanQ	  s    
"(c         C   så  t  j   Ói t j d  d 6t j d d d  d 6} t |  } i t j d  d d 6t j d  d d 6} t |  } t | j d | d	 t } |  j	 | d
 d d d t | j d | d t d	 t } |  j	 | d
 d d d t | j d | d t } |  j	 | d
 d d d d d d g } xp| D]h} t | j d | d d | } |  j	 | d
 d d d t | j d | d | } |  j	 | d
 d d d t | j d | d
 | d | } |  j	 | d
 d d d t | j d | d d
 | d d | } |  j	 | d
 d d d t | j d
 d d d d | } |  j	 | d
 d d d t | j d | d
 | d t d | } |  j	 | d
 d d d q7Wt | d j d | d
 | d d d t } |  j	 | d
 d d d t | d j d t j d  d } |  j	 | d
 d d d t | j d t j d  d } |  j	 | d
 d d d d d  l
 }	 t | j d |	 j d t |   } |  j	 | d
 d d d x¥ d t d  g D] }
 | j   } t j d  d | |
 <t | j d |
 } |  j	 | d
 d d d t | j d d d d d |
 } |  j	 | d
 d d d qÀWt j t  ! | j d t j j d   Wd  QXt i d g d d 6d g d d 6 } t j t t f   | j d |  Wd  QXWd  QXd  S(   Ni   R9   i    iÿÿÿÿR:   gÉ?gÙ?t   yerrR   t   xerri   R   R   RW   RJ   R°   R²   R5   i   R   g¹?s   èª€å·®i   t   zzz(   i   i   (   Rö   R÷   R"   R%   R   t   onesR   RN   RR   t   _check_has_errorbarst	   itertoolsRÖ  Ra   R	   t   copyRT   RU   Rs   R#   R   RÝ   (   R'   R  Rc   t   d_errt   df_errR/   Rê  R²   R-   Rd  R_  t   s_df(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_errorbar_plotd	  sl    ,.!	
	!	&"!"(c         C   s   t  t j j d d   } t  t j j d d   } t | j d | } |  j | d d d d t | j d d d d } |  j | d d d d d  S(   Ni
   i   R_  R`  i    R:   i   (   R   R"   R#   R   R   RN   Rc  (   R'   Rc   Rg  R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt'   test_errorbar_with_integer_column_names«	  s    c   
      C   sÀ  t  t j j d d   } t  t j j d d  d d d g } d d g } xB | D]: } t | j d | d	 | } |  j | d
 d d d qU Wt d d d d d } | j | d t	 | j | d t	 t | j d | d	 d } |  j | d
 d d d i t j
 d  d 6t j
 d d d  d 6} t  |  } i t j d  d d 6t j d  d d 6} t  |  } xB | | g D]4 }	 t | j d |	 } |  j | d
 d d d qWd  S(   Ni
   i   i   RM   i    RW   RJ   R_  R²   R`  s   1/1/2000RÄ   RÂ   RÃ   t   inplacei   R9   iÿÿÿÿR:   gÉ?gÙ?R}   i   (   R   R"   R#   R   R   RN   Rc  R   R   RR   R%   Rb  (
   R'   Rc   Rg  Rê  R²   R/   t   ixR  Rf  t   err(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt"   test_errorbar_with_partial_columnsµ	  s$    ',.c   
      C   s  t  j   i t j d  d 6t j d d d  d 6} i t j d  d d 6t j d  d d 6} t d d	 d
 d } t | d | } t | d | } d d d g } x\| D]T} t | j d | d | } |  j	 | d d d d t | j d | d | } |  j	 | d d d d t | j d d d | d d | } |  j	 | d d d d t | j d d d d d | } |  j	 | d d d d t | j d | d | } |  j	 | d d d d t | j d | d | d t
 }	 |  j	 |	 d d d d q¶ WWd  QXd  S(   Ni   R9   i    iÿÿÿÿR:   gÉ?gÙ?s   1/1/2000s   1/1/2001RÂ   RÃ   R=   RW   RJ   R°   R_  R²   R`  i   i   R5   (   Rö   R÷   R"   R%   Rb  R   R   R   RN   Rc  RR   (
   R'   R  Rf  Rl  R!   t   tdf_errRê  R²   R/   R-   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_errorbar_timeseriesÌ	  s.    ,.	!	c         C   s  t  j j d  t  j j d d d  } t t  j d  j d d   j } | j d | d | d  } | j	 d j
   d j d  d   d f } | d d  d   d f t  j d	 d g  } t j | |  t j t   | j d | j  Wd  QXt j   d  S(
   Ni    i   i   i   i   R_  R`  i   iÿÿÿÿ(   R"   R#   t   seedR   R   R%   t   reshapet   TRN   R  t	   get_pathst   verticesRØ   R   R  RT   RU   Rs   R   (   R'   Rm  Rc   R/   t   yerr_0_0t   expected_0_0(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_errorbar_asymmetricalì	  s    $*,c         C   s­   t  t j j d d  d t t j d   } t | j d t	 t | j d | | j   } t
 | j  d k s{ t  t j | | j  t
 | j  d k s© t  d  S(   Ni
   i   R=   t   tablei    i   (   R   R"   R#   R   RX   RY   RZ   R   RN   RR   Ra   t   tablesRb   R   Ry  Rs  (   R'   Rc   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt
   test_table 
  s    c            so  t  t j j d d  d t d  d d d g } t  t j j d d  d d t d  d d d g } t | j j d d d d    j   d d d	 d t | j j d d d d d |    j   d d
 d	 d t | j j d d d d d	 |    j   d d d	 d
 t | j j d d d d d | d	 |    j   d d
 d	 d
 d    f d  } t  t j j d d  d d d d d d g } | j j d d d d d d d	 d d d     j   d d
 d	 d
 |   j	 d d d |   j	 d d d | j j d d d d d	 d d d     j   d d d	 d
 |   j	 d d d d  S(   Ni   i   R=   RM   R9   R:   R`  i    R_  i   t   has_xerrc   	         sÊ   g  } g    j  D]! } t | | t  r | j ^ q d } x7 | D]/ } t |  rd | j |  qB | j |  qB Wg  | D] } |   j k r| | ^ q| }  j | d t	 j
 | g t |   d  S(   Ni    R  (   t
   containersR0  RO   Rx   R   t   extendt   appendR  R<  R"   RØ   Ra   (	   R}  R.   t   has_errRx   Rj   t   errst   elR9   t	   err_lines(   R/   R'   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _check_errorbar_color
  s    2(i
   Rh   Ri   Rj   R  RÜ  Ro   R  t   has_yerrRk   R7  (
   R   R"   R#   R   R   R   RN   Ra  Rc  R}  (   R'   Rc   Rg  R  (    (   R/   R'   s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_errorbar_scatter
  s.    0$$!	--'c            sA  d d  l  j } | j d  t   \ } } t i d d d d d d g d	 6d d d d d d g d
 6d d d d d d g d 6d d d d d d g d 6 }   f d   } x6 | D]. } | j d d	 d d
 d d d | d t  q± W| j | j    | |  t	 j   t   \ } } t	 j
 t  # | j d t d | d t  } Wd  QX| |  t	 j   t   \ } } x0 | D]( } | j d d	 d d
 d d d |  qwW| j | j    xz | D]r } t | j  d k sÞt    j | j   d t   j | j   d t   j | j d t  d t qœWt	 j   d  S(   NiÿÿÿÿRÜ   i   i   i   i   i   i   Rh   Ri   Rj   R  c            s÷   xB |  D]: } t  | j  d k s( t    j | j   d t q WxT |  d |  d g D]> }   j | j   d t   j | j d t  d t qZ WxT |  d |  d g D]> }   j | j   d t   j | j d t  d t q± Wd  S(   Ni   R*   i    i   RE   i   (   Ra   Rx   Rb   R+   R,   RR   R2   RO   (   R-   R/   (   R'   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _checkD
  s    R9   R:   RC   R/   R³   R5   R*   RE   (   R8  R9  R   t   _generate_4_axes_via_gridspecR   RN   RR   Rp  Rü  R   RP   RQ   Ra   Rx   Rb   R+   R,   R2   (   R'   R`   t   gsR-   Rc   R  R/   (    (   R'   s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_sharex_and_ax6
  s8    ,

$

&#c            s=  d d  l  j } t   \ } } t i d d d d d d g d 6d d d d d d g d	 6d d d d d d g d
 6d d d d d d g d 6 }   f d   } x6 | D]. } | j d d d d	 d d d | d t  q€ W| j | j    | |  t j	   t   \ } } t j
 t  # | j d t d | d t  } Wd  QX| j | j    | |  t j	   t   \ } } x0 | D]( } | j d d d d	 d d d |  q}W| j | j    xz | D]r } t | j  d k sät    j | j   d t   j | j   d t   j | j d t  d t qÃWd  S(   Niÿÿÿÿi   i   i   i   i   i   Rh   Ri   Rj   R  c            sØ   xa |  D]Y } t  | j  d k s( t    j | j   d t   j | j d t  d t q Wx5 |  d |  d g D] }   j | j   d t qy Wx5 |  d |  d g D] }   j | j   d t q± Wd  S(   Ni   R*   RE   i    i   i   (   Ra   Rx   Rb   R+   R2   RR   R,   RO   (   R-   R/   (   R'   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyR  x
  s    R9   R:   RC   R/   RŒ   R5   R*   RE   (   R8  R9  R  R   RN   RR   Rp  Rü  R   R   RP   RQ   Ra   Rx   Rb   R+   R,   R2   (   R'   R`   R  R-   Rc   R  R/   (    (   R'   s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_sharey_and_axj
  s6    ,

$

&c         C   s  d d l  } d d l } i  } x§ t j j j   D] } t |  sI q1 n  i  } | d k r{ |  j } i d d 6d d	 6} n' | d
 k r |  j j	   } n	 |  j } | j
 | j d | |   | | <q1 Wt j   | j   x/ | D]' } t j t   | | j Wd QXqã Wd S(   s5    Check that every plot type gets properly collected. iÿÿÿÿNRm  Ra  RQ  R   R9   R   R:   R±   R²   (   Rm  Ra  RQ  (   t   weakreft   gcR   R.  t   _plot_klasst   keysR   R&   R!   t   abst   proxyRN   R   R   t   collectRT   RU   t   ReferenceErrorRx   (   R'   R  R  t   resultsR²   t   argsRc   t   key(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_memory_leak
  s&    		&

c         C   s#  d d  l  j } t t j j d d  d t d d d d t d  } | j d d	 d
 t	 \ } } | j
 d t	 d |  } xB | D]: } t | j  d	 k sŠ t  |  j | j   d t	 q W|  j | d j   d t |  j | d j d t	  d t |  j | d	 j   d t	 |  j | d	 j d t	  d t	 t j   | j d d	  \ } } t j t  # | j
 d t	 d | d
 t	  } Wd  QXxB | D]: } t | j  d	 k sÁt  |  j | j   d t	 q W|  j | d j   d t |  j | d j d t	  d t |  j | d	 j   d t	 |  j | d	 j d t	  d t	 t j   | j d d	  \ } } | j
 d t	 d |  } xz | D]r } t | j  d	 k sÀt  |  j | j   d t	 |  j | j   d t	 |  j | j d t	  d t	 qWt j   d  S(   Niÿÿÿÿi
   i   R=   s   1/1/2000RÄ   RM   t   ABi   R³   R5   R/   R*   i    RE   (   R8  R9  R   R"   R#   R   R   RX   R5   RR   RN   Ra   Rx   Rb   R+   R,   R2   RO   R   R   RP   RQ   (   R'   R`   Rc   Re   R-   R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt$   test_df_subplots_patterns_minorticksœ
  sB    ##
$##
#c   
         sZ  d d  l  j  d d  l j   t t j j d  d t d d d } t	 t j j d d  d | j
 d t d  }    f d	   }    f d
   } xì |   |   g D]Ø \ } } | j d |  } t | j  d k sè t  | j d |  } t | j  d k st  xe | | g D]W } |  j | j   d t |  j | j   d t |  j | j d t  d t q"Wt j   q¯ Wxà |   |   g D]Ì \ } } | j d t d | | g  } t | j  d k sãt  t | j  d k sþt  x_ | D]W } |  j | j   d t |  j | j   d t |  j | j d t  d t qWt j   qW|   \ } } t j t  / | j d t d | | g d t d t  } Wd  QXt | d j  d k sÜt  t | d j  d k sût  x- | | g D] } |  j | j   d t qW|  j | d j   d t |  j | d j d t  d t |  j | d j   d t |  j | d j d t  d t t j   |   \ } } t j t  / | j d t d | | g d t d t  } Wd  QXt | d j  d k s#t  t | d j  d k sBt  |  j | d j   d t |  j | d j   d t xL | | g D]> } |  j | j   d t |  j | j d t  d t qWt j      f d   }	 |	   } t	 t j j d d  d | j
 d t d  } | j d t d |  } xz | D]r } t | j  d k s`t  |  j | j   d t |  j | j   d t |  j | j d t  d t q?Wt j   |	   } t j t  ) | j d t d | d t d t  } Wd  QXx) | D]! } t | j  d k s	t  q	Wx5 | d | d g D] } |  j | j   d t qCWx5 | d | d g D] } |  j | j   d t q{WxT | d | d g D]> } |  j | j   d t |  j | j d t  d t q³WxT | d | d g D]> } |  j | j   d t |  j | j d t  d t q
Wt j   d  S(   Niÿÿÿÿi
   R=   s   1/1/2000RÄ   i   RM   R  c             sl     j  d d  }   j   } | j |  d  d  d  d   f  } | j |  d d  d   f  } | | f S(   Ni   i   i   (   t   GridSpecRõ   Rþ  (   R  Re   R  R  (   t   gridspecR`   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _get_vertical_gridö
  s
    %c             sl     j  d d  }   j   } | j |  d  d   d  d  f  } | j |  d  d   d f  } | | f S(   Ni   i   i   (   R  Rõ   Rþ  (   R  Re   R  R  (   R  R`   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _get_horizontal_gridý
  s
    %R/   i   R*   RE   R5   R³   RŒ   i    c             s€     j  d d  }   j   } | j |  d  d  d  d  f  } | j |  d  d  d f  } | j |  d d  d  f  } | j |  d  } | | | | f S(   Ni   i   (   i   i   (   R  Rõ   Rþ  (   R  Re   R  R  t   ax3t   ax4(   R  R`   (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   _get_boxed_grid>  s    %i   t   ABCDi   (   R8  R9  t   matplotlib.gridspecR  R   R"   R#   R   R   R   R=   RX   RN   Ra   Rx   Rb   R+   R,   RR   R2   R   R   RP   RQ   RO   (
   R'   t   tsRc   R  R  R  R  R/   R-   R   (    (   R  R`   s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_df_gridspec_patternsê
  s¢    !!##
!#
		#
	*##c         C   sT   |  j  t i d d d g d 6d d d g d 6 t j j d i d d 6d d	 6d  S(
   Ni   i   i   Rh   i   Ri   t   kwsR9   R:   (   t   _check_grid_settingsR   R   R.  t   _dataframe_kinds(   R'   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_df_grid_settingse  s    )c         C   sK   t  t d d  d d d g } t j t   | j d d  Wd  QXd  S(   Ni   i   RM   R   R   R4  t   invalid_colormap(   R   R   RT   RU   Rs   RN   (   R'   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_invalid_colormapl  s    !c   	      C   s¿  |  j  j   \ } } | j d d d d g  t t d   j d |  t i t d  d 6t d  d 6 } |  j  j   } | j d  } | j d	 d
 d | d d d d d d d d  |  j  j   \ } } d d l	 m
 } | |  } | j d d d d d } t t d   j d |  t t d   j d |  |  j  j   \ } } d d l m } | | d d d d d d } t t d   j d |  t t d   j d |  d  S(   NgÉ?i
   R/   i   Rh   Ri   i    i   R²   Ra  R9   R:   Rj   R~  t   hsviÿÿÿÿ(   t   make_axes_locatableRü   R   s   5%t   padg©?(   t
   inset_axesRL  s   30%R£  g      ð?R?  i   (   i    i    i   i   (   R`   R5   t   add_axesR   R   RN   R   R   Rõ   t   mpl_toolkits.axes_grid1R¬  t   append_axest%   mpl_toolkits.axes_grid1.inset_locatorR®  (	   R'   Re   R/   Rc   R¬  t   dividert   caxR®  t   iax(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_plain_axesr  s$    &.c         C   s   d d  l  } d
 d d g } | j j |  } t j d d d g g  j d d d	 |  } | g  | j D] } | j   ^ qg k s t  d  S(   NiÿÿÿÿgÍÌÌÌÌÌì?i    i   i   i   R²   RJ   R~  (   gÍÌÌÌÌÌì?i    i    i   (   i    gÍÌÌÌÌÌì?i    i   (   i    i    gÍÌÌÌÌÌì?i   (	   R   Rm   t   ListedColormapR   R   RN   R=  RE  Rb   (   R'   R)   t   color_tuplesR4  t   barplotRj   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_passed_bar_colors  s
    -c         C   s    d d  l  } d d d g } | j d i | j d |  d 6 , t j d d d	 g g  j d
 d  } Wd  QX| g  | j D] } | j   ^ q{ k s t  d  S(   NiÿÿÿÿgÍÌÌÌÌÌì?i    i   t   rcRk   s   axes.prop_cyclei   i   R²   RJ   (   gÍÌÌÌÌÌì?i    i    i   (   i    gÍÌÌÌÌÌì?i    i   (   i    i    gÍÌÌÌÌÌì?i   (	   R   t
   rc_contextR)  R   R   RN   R=  RE  Rb   (   R'   R)   Rž  R¹  Rj   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_rcParams_bar_colors  s    	-R(   RW   R°   c         C   sª   t  j t j j d d  d t d  j d d    j d d    } d	 } d d g } t d
 | d | d t  } t	 | j
 |  |   } |  j d | j d |  d  S(   Ni   i   RM   R  R   c         S   s   |  j  j   S(   N(   R   RÚ  (   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   <lambda>£  s    RO  c         S   s   |  j  d S(   Ngñ?(   R   (   Rc   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyRŸ  €  s    i   R  RÆ   t
   mark_rightR-   RÈ   (   R   R   R"   R#   R   RX   t   assignR°  RR   R0  RN   R]   R  (   R'   R(   Rc   RÆ   R  RÉ  R/   (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   test_secondary_axis_font_size  s    	N(   R   R   (   t   __name__t
   __module__R   R1   R3   RT   t   markt   slowRg   Rn   Rp   Rq   Rt   R|   R   R   R   R   R   R   R   R§   R¯   R»   R¿   RÀ   RÊ   Rä   t   xfailRñ   Rò   Ró   Rú   R  R  R	  R  R  R  R)  R,  R0  RC  RG  RK  RO  RR  RV  RY  RZ  R`  Rb  Rj  Rn  Rx  Rz  R  R  R  RO   RQ  R  R  R  R  R   R¡  R¢  R«  R­  R³  R¹  t   tdt   skip_if_no_scipyR»  RŒ  RË  R¹   RÕ  RÙ  RÛ  Rï  R÷  Rø  R  R  R	  R
  R  R  R  R  R  R'  R*  R-  R1  R3  R5  R7  t   parametrizeR:  R<  R@  RB  RC  RF  RH  RI  RK  RV  R^  Ri  Rj  Rn  Rp  Rx  t   xfail_if_mpl_2_2R{  R  R  R  R  R  R€  Rš  Rª  R¶  Rº  Rœ  RÁ  (    (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyR      s  			`						$			(		$	!+.<			
		"	(		$	&4		9	

&		)YE		3M-"		:A					$!3$

#	G
 		*43	 -{				c          C   s   d d  l  j }  d d  l } d d  l } | j j d d  } |  j | d  } |  j | d  } |  j | d  } |  j | d  } | | | | | g f S(	   Niÿÿÿÿi   i    i   (   i    i    (   i   i    (   i    i   (   i   i   (   R8  R9  R   R¢  R  R  t   subplot(   R`   R)   R   R  t   ax_tlt   ax_llt   ax_trt   ax_lr(    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyR  °  s    (0   t   __doc__R   R    RY   Rö   t   numpyR"   t   numpy.randomR   R   RT   t   pandas.compatR   R   R   R   R   R	   R
   t   pandas.util._test_decoratorst   utilt   _test_decoratorsRÇ  t   pandas.core.dtypes.apiR   R   R   R   R   R   R   R   R   t   pandas.tests.plotting.commonR   R   R   R   t   pandas.util.testingt   testingR   t   pandas.io.formats.printingR   t   pandas.plottingR   t   skip_if_no_mplR   R  (    (    (    s?   lib/python2.7/site-packages/pandas/tests/plotting/test_frame.pyt   <module>   s:   4."	ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ 