tJc@s6dZddkiZddkiZddkiZ ddk i Z ddk l Z ddklZlZlZlZlZddklZddklZddklZddkZddkZddkiZdeifd YZ d e!fd YZ"d e#fd YZ$dfdYZ%de#fdYZ&de&fdYZ'ddklZdefdYZ(de i)fdYZ*de i)fdYZ+defdYZ,dei-fdYZ.dei/fd YZ/ei0e/Z1d!e/fd"YZ2ei0e2Z3e4d#joddk5i6Z7e7i8d$d%d&fZ9e3e9d$d$d$Z:e9i;e:e:i<d'i=e>e:i<d'i?i@d(x+d)d*d+gD]ZAe:i<eAi=eBqWeiCd,d-eiDd.ZEe:iFeEeiGeEe:iHd/e7iIe7iJndS(0s Axislines includes modified implementation of the Axes class. The biggest difference is that the artists responsible to draw axis line, ticks, ticklabel and axis labels are separated out from the mpl's Axis class, which are much more than artists in the original mpl. Originally, this change was motivated to support curvlinear grid. Here are a few reasons that I came up with new axes class. * "top" and "bottom" x-axis (or "left" and "right" y-axis) can have different ticks (tick locations and labels). This is not possible with the current mpl, although some twin axes trick can help. * Curvelinear grid. * angled ticks. In the new axes class, xaxis and yaxis is set to not visible by default, and new set of artist (AxisArtist) are defined to draw axis line, ticks, ticklabels and axis label. Axes.axis attribute serves as a dictionary of these artists, i.e., ax.axis["left"] is a AxisArtist instance responsible to draw left y-axis. The default Axes.axis contains "bottom", "left", "top" and "right". AxisArtist can be considered as a container artist and has following children artists which will draw ticks, labels, etc. * line * major_ticks, major_ticklabels * minor_ticks, minor_ticklabels * offsetText * label Note that these are separate artists from Axis class of the original mpl, thus most of tick-related command in the original mpl won't work, although some effort has made to work with. For example, color and markerwidth of the ax.axis["bottom"].major_ticks will follow those of Axes.xaxis unless explicitly specified. In addition to AxisArtist, the Axes will have *gridlines* attribute, which obviously draws grid lines. The gridlines needs to be separated from the axis as some gridlines can never pass any axis. iN(tPath(tAffine2DtScaledTranslationtIdentityTransformtTransformedPathtBbox(tLineCollection(trcParams(tallow_rasterizationt BezierPathcBs,eZdZdZdZdZRS(cOs2tii|gg||||_t|_dS(N(tmlinestLine2Dt__init__t_pathtFalset_invalid(tselftpathtkltkw((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR Gs cCs(t|i|i|_t|_dS(N(RR t get_transformt_transformed_pathRR(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytrecacheLscCs||_t|_dS(N(R tTrueR(RR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytset_pathRs c Cs]|io|in|id|ipdS|i}|i||i|i|i|i |i |i |i |i |io|i}|i}n|i}|i}|i||i||ii|id}|djoA|ii\}}t||}|||||in|i|iddS(Ntline2dt _draw_nothing(RRt open_groupt_visibletnew_gct _set_gc_cliptset_foregroundt_colortset_antialiasedt _antialiasedt set_linewidtht _linewidtht set_alphat_alphat is_dashedt _dashcapstylet_dashjoinstylet_solidcapstylet_solidjoinstylet set_joinstylet set_capstylet _lineStylestgett _linestyleRtget_transformed_path_and_affinetgetattrtfrozentrestoret close_group( RtrenderertgctcaptjointfuncnamettpathtaffinetlineFunc((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytdrawWs2              (t__name__t __module__R RRR>(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR Es   tUnimplementedExceptioncBseZRS((R?R@(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRAystAxisArtistHelpercBsPeZdZdefdYZdefdYZdefdYZRS(sj AxisArtistHelper should define following method with given APIs. Note that the first axes argument will be axes attribute of the caller artist. # LINE (spinal line?) def get_line(self, axes): # path : Path return path def get_line_transform(self, axes): # ... # trans : transform return trans # LABEL def get_label_pos(self, axes): # x, y : position return (x, y), trans def get_label_offset_transform(self, axes, pad_points, fontprops, renderer, bboxes, ): # va : vertical alignment # ha : horizontal alignment # a : angle return trans, va, ha, a # TICK def get_tick_transform(self, axes): return trans def get_tick_iterators(self, axes): # iter : iteratoable object that yields (c, angle, l) where # c, angle, l is position, tick angle, and label return iter_major, iter_minot t_Basec BseZdZdZdZeddddddddZeddddddddZd d Z d Z d Z RS( s- Base class for axis helper. cCs ||_dS(s~ label direction must be one of ["left", "right", "bottom", "top", "curved"] N(tlabel_direction(RRD((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR scCsdS(N((Rtaxes((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt update_limstleftiZtrighttbottomittopc Cs|o.|i|}|i}|i|}n|}|i}|}|o&ti|}|i|i} } n d \} } t} |idjo#| i||  d| ddfS|idjo#| i||  d| ddfS|idjo'| id|||  | ddfS|idjo#| id||  | ddfS|id jo| ddfSt d |ifd S( s Returns (offset-transform, vertical-alignment, horiz-alignment) of (tick or axis) labels appropriate for the label direction. The offset-transform represents a required pixel offset from the reference point. For example, x-axis center will be the referece point for xlabel. pad_points : padding from axis line or tick labels (see bboxes) fontprops : font properties for label renderer : renderer bboxes=None : list of bboxes (window extents) of the tick labels. This only make sense for axis label. all the above parameters are used to estimate the offset. iRGgtcenterRHRItbaselineRJtcurvedsUnknown label direction : %sN(ii( tpoints_to_pixelstget_size_in_pointsRtuniontwidththeightRRDt translatet ValueError( Rt pad_pointst fontpropsR6tbboxest pad_pixelstfont_size_pointstfont_size_pixelstbboxtwthttr((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt_get_label_offset_transforms8    c CsA|i||||\}}}|i|i} |||| fS(s: offset transform for axis label. (R_t _label_anglesRD( RRERURVR6RWR^tvathata((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_label_offset_transformsc CsA|i|||d\}}}|i|i}||||fS(s: offset transform for ticklabels. N(R_tNonet_ticklabel_anglesRD( RRERURVR6R^RaRbRc((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_ticklabel_offset_transformsN( R?R@t__doc__R RFtdictR`RfReR_RdRg(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRCs  !! C tFixedc BsqeZdZeddddddddZddZdZd Zd Z d Z d Z d Z RS(sI Helper class for a fixed (in the axes coordinate) axis. RGiRHiRIRJcCs|d jotd|n|d jo d}n|d jo d}n||_tti|i||i||_|d jo |}nt i ddgd d gg}d|}|i||d d |f x axis, nth_coord = 1 -> y axis RGRHRIRJs%siigg?N(sleftsrightsbottomstop(sleftsright(sbottomstop( RTt nth_coordtsuperRBRjR t_default_passthru_ptt passthru_ptRetnptarrayRR (RtlocRDRkt_vertst fixed_coord((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR .s          cCs|iS(N(Rk(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt get_nth_coordQscCs|iS(N(R (RRE((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_lineVscCs|iS(N(t transAxes(RRE((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_line_transformYscCs=ddg}|i}d|}|i|||<||ifS(s label reference position in transAxes. get_label_transform() returns a transform of (transAxes+offset) g?i(RkRnRv(RRERrRkRs((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt get_label_pos^s    c CsA|i||||\}}}|i|i} |||| fS(N(R_R`RD( RRERURVR6RWR^RaRbRc((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRdkscCs#|i|ig|i}|S(N(tget_xaxis_transformtget_yaxis_transformRk(RREt trans_tick((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_tick_transform|s (ii(ii(ii(iiN( R?R@RhRiRmReR RtRuRwRxRdR|(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRj$s   !    tFloatingcBs#eZdZdZdZRS(cCs/||_||_tti|i|dS(N(Rkt_valueRlRBR}R (RRktvalueRD((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s   cCs|iS(N(Rk(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRtscCstddS(Ns6get_line method should be defined by the derived class(t RuntimeError(RRE((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRus(R?R@R RtRu(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR}s (R?R@RhtobjectRCRjR}(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRB~s/u`tAxisArtistHelperRectlinearcBs:eZdeifdYZdeifdYZRS(RjcBseZddZdZRS(cCs<tti|i|||i|ig|i|_dS(s nth_coord = along which coordinate value varies in 2d, nth_coord = 0 -> x axis, nth_coord = 1 -> y axis N(RlRRjR txaxistyaxisRktaxis(RRERqRD((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s c sddiididjodnidjotddjod7n0idjotddjod7nii}|i}|ii|g}t|D]\}}||i||q~}ii }|i} |ii| g} t| D]\}}| |i||q2~ } i |} | |i i fd } | ||| | | fS( s tick_loc, tick_angle, tick_labeliiZig?isxtick.directiontoutsytick.directionc3sxt||D]|\}}ti}||i<i|}d}d||ijod|jno||fVqqWdS(Ngh㈵>gg?(tziptlistRnRkttransform_point(tlocstlabelstxtltctc2tdelta(tanglettr2axR(sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt_fs  -( RkRnRRtmajortlocatort formattertset_locst enumeratetminorR|Rvtinverted(RRERt majorLocst_[1]titvalt majorLabelsRt minorLocst_[2]t minorLabelsR{R((RRRsF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_tick_iteratorss&!!  9  9 N(R?R@ReR R(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRjs R}cBsGeZdZdZdZdZdZdZdZRS(cCs?tti|i||||i|ig|i|_dS(N(RlRR}R RRRkR(RRERktpassingthrough_pointRD((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s cCstiddgddgg}d|i}|i|ii}|i|i|ig}|||dd|feZdZdZdZdZdZdZRS(cCs)t|_d|_tt|idS(N(Rt _force_updateRet _old_limitsRlRR (R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR 4s  cCs|i\}}|i\}}|ip|i||||fjo8|i||||t|_||||f|_ndS(N(tget_xlimtget_ylimRRt_updateR(RREtx1tx2ty1ty2((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRF:s & cCsdS(N((RRRRR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRDscCs t|_dS(N(RR(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt invalidateHscCs|i S(N(R(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytvalidKscCsgS(N((R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt get_gridlinesOs(R?R@R RFRRRR(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR2s     tGridHelperRectlinearcBs;eZdZddddddZddddZRS(cCs tt|i||_dS(N(RlRR RE(RRE((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR Wstinc CsU|djotid|i}nti|||}t||d|}|S(Ns6'new_fixed_axis' explicitly requires the axes keyword.toffset(RetwarningstwarnRERRjt AxisArtist( RRqRkttick_directionRDRREt_helpertaxisline((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytnew_fixed_axis^s    c Cs|djotid|i}n||f}|i}ti||||}t||} | ii t | ii | ii | S(Ns9'new_floating_axis' explicitly requires the axes keyword.( ReRRRERRR}Rtlinet set_clip_onRt set_clip_boxR[( RRkRRRDREtpassthrough_pointt transformRR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytnew_floating_axisqs     N(R?R@R ReRR(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRTs  (R tTickscBsqeZedZdZdZdZdZdZdZ e ddgddggZ d Z RS( cKs||_g|_|i||idd|_|idj oGd|jod|ds,        ( R?R@RR RRRRRRRRR>(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRs     t TickLabelscBsGeZdZdZdZdZdZdZdZRS(cKsg|_|idd|_|idj od|jod|dtclear( RR6R^trmt offset_trtddRRRcRtthetatdxtdy((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR>(s8       '        c Csg}xZ|iD]O\\}}}}|i||i||i||i|iqWg}|D]1}|idjp|idjo ||qnqn~S(Ni(RRRRtappendtget_window_extentRQRR( RR6RWRRRcRRR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_window_extentsOs    ( R?R@R RRRRR>R(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRs    't AxisLabelcBs#eZdZdZdZRS(cOsa|idd|_|idj od|jod|d(RR6tglRR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR>s5(R?R@R RR>(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRxs  Rc BseZdZdZdZddddddZdZdZdZ dZ dZ d Z d Z ed dddddddZdZdZdZdZdZdZdZedZdZdddddZRS( s an artist which draws axis (a line along which the n-th axes coord is constant) line, ticks, ticklabels, and axis label. It requires an AxisArtistHelper instance. ig@c Kstt|i|||_||_|d jo d }nt|_t|d|d|i|_ t |_ t |_ t |_ t |_t |_|iid jod} |i|_nd} |i|_|d jotd| |_n|d jotd| |_n|d jotd | |_n|d jotd | |_n|i|i|i|ii|i|i|it|_ d S(sS axes is also used to follow the axis attribute (tick color, etc). iiRGRHtyticktxticks %s.major.sizes %s.major.pads %s.minor.sizes %s.minor.padN(ii(sleftsright(!RlRR REt_axis_artist_helperReRt dpi_transformRtoffset_transformRt_label_visiblet_majortick_visiblet_majorticklabel_visiblet_minortick_visiblet_minorticklabel_visibleRDRRRRtmajor_tick_sizetmajor_tick_padtminor_tick_sizetminor_tick_padt _init_linet _init_tickst_init_offsetTextt _init_labelt set_zordertZORDERRt_rotate_label_along_line( RREthelperRR'R(R)R*Rt axis_name((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s@                   cCs ||_dS(N(R1(RR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytset_rotate_label_along_linescCs|iS(N(R1(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_rotate_label_along_linescCs|ii|iS(N(RERvR!(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRscCs|iS(N(R(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt get_helperscCsX|ii|i|i}t|ii|idtddtdd||_dS(NRsaxes.edgecolort linewidthsaxes.linewidthR(RRwRER!R RuRR(Rttran((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR+s    cCs3|ii|ii|i|ii|dS(N(RRRRuRER>(RR6((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt _draw_linesc CsS|ii|i|i}t|id|id||_t|id|id||_ t d}t i d|}|ii |i|id|dd}|\}}}}||}t|d|i|_t|d|i|_|iid|iid|d|d |d ||iid|iid|d|d |d |dS( NRRsxtick.labelsizeRRVR6tfigureRaRbtfontproperties(RR|RER!RR'Rt major_ticksR)t minor_ticksRt font_managertFontPropertiesRgR(ReRtmajor_ticklabelstminor_ticklabelstsetR:( RRRRVttvhlttranstvertthoriztlabel_a((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR,s6          RGiiRIRHRJcCs|i|\}}}}tidd||fdddd ddd td d |d ||_|iit|ii|idS(NRtxytxycoordss axes fractiontxytextit textcoordss offset pointsRs xtick.colortverticalalignmentthorizontalalignment(ii( t_offsetText_postmtextt AnnotationRt offsetTextRRREt_set_artist_props(Rt directionRRRaRb((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR-s    cCsh|ii|iiii|ii|ii|i |iid}d|f|i_ dS(Ng@i( RQRRRRt get_offsettset_sizeR@RR(RJ(RR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt_update_offsetText+scCs|i|ii|dS(N(RVRQR>(RR6((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt_draw_offsetText2s c Cs|ii|i\}}t|}|ii|i|i}tidd}|ii|i|i d|d|}|\}} } } ||}|i i ||i i |||i i |||i i||i i|t|}|ii |||ii |||ii||ii||i ip|iio|i|n|i i|S(NRi RVR6(RRRERR|R!R>R?RgR(R@RR<RR>R=RARRWR( RR6tmajortick_itertminortick_iterttick_loc_angle_labelRRVRCRDRaRbRc((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt _draw_ticks7s2        c Csstidtd}td|dtd}tdddddd|d |i|_|ii|ii dS( NRsaxes.labelsizeR;Rsaxes.labelcoloriRRR( R>R?RRiRRRt set_figureRER:(RRVt textprops((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR.ds  cCsC|iipdStidtd}|i}|io8|ii|i dt \}}}|djodS|\}} t } |i io+|i|i i|d|i} n|i|d|i} |dti} | ti| | ti| } }| i| ||| }|iid|d| dd d |d d d d d|tidn|ii|i \}}|djodS|\}} |ii|i |d|i||d|\}}}}||i|}|iid|d| d |d |d |d||ii|dS(NRsaxes.labelsizet with_angleig?RRt rotation_modeRRRaRKRbtrotationgf@RW(RRR>R?RR(R5RRxRERReRR@RNRtLABELPADRoRRRRSRBRdR!R>(RR6RWRVRURHR^RGRRRRR R R ttr2RaRbRc((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt _draw_labelvsL      %'     cCs|ii|dS(N(RR(Rts((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt set_labelscCs|ipdS|it|ii|i|id}|iii |||i ||i |}|i |||i tdS(s*Draw the axis lines, tick lines and labelsNg?(RRR?RRFRERNR RRR9R[RcR5(RR6tdpi_corRW((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR>s   cCsdS(N((RR6((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pytget_ticklabel_extentsscCs|ottt}}}n5|dj ottt}}}nd\}}}|dj o |}n|dj o |}n|dj o |}n|dj o$|ii||ii|n|dj o$|ii||ii|n|dj o|ii|ndS(N(NNN( RReRR<t set_visibleR=R@RAR(RtalltticksRRt_tickst _ticklabelst_label((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyttoggles&          N(iisbottomsright(iisbottomRG(iistopsright(iisbottomsright(R?R@RhRaR0ReR R4R5RR6R+R9R,RiRNR-RVRWR[R.RcReRR>RgRn(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRs: 2       ,      -  5  tAxescBseZdefdYZdZddZdZdZdZ e e Z ddZ dZ d Zdd Zd Zd Zd ddZedZdZRS(tAxisDictcBseZdZdZRS(cCs#||_tti|idS(N(RERlRoRpR (RRE((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s cOstii|i||S(N(tmaxesRoRRE(RtvR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt__call__s(R?R@R Rs(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRps cOsh|idd}|o ||_nt||_t|_tt|i|||i tdS(NR( RReRRRt _axisline_onRlRoR ttoggle_axisline(RRRR2((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR s  cCs|djo|i }n|oTt|_x$|iiD]}|itq;W|iit|iitnQt|_x$|iiD]}|itqW|iit|iitdS(N( ReRtRtspinestvaluesRhRRR(RRRd((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRus   cCstt|idS(N(RlRot _init_axis(R((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRxscCs|i||_|ii}x6ddddgD]"}|d|d||i|tartistsRRyRwR(RR6tinframet orig_artists((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR>`s  )cCsttt|i|}|ip|S|g}x|iiD]}|ipq@n|iio|i|ii |n|i io|i |i i |n|i io|i |i i |n|i ip|i io|i|ii |q@q@Wtig}|D]1}|idjp|idjo ||q3q3~}|S(Ni(RlRot get_tightbboxRtRyRwRRR R R@RRRARQRRPRQRR(RR6tbb0tbbRRRt_bbox((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRns&   !NN(R?R@RiRpR ReRuRxR{R|tpropertyRRRRzRRRRRR>R(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyRos"          tAxesZerocBseZdZdZRS(cOstt|i||dS(N(RlRR (RRR((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyR sc Cstt|i|ii}|ddddddddd |}|ii|i|it ||i d <|dd dddddd d |}|ii|i|it ||i d tmatplotlib.pathRtmatplotlib.transformsRRRRRtmatplotlib.collectionsRt matplotlibRRRtnumpyRotmatplotlib.linestlinesR R R t ExceptionRARRBRRRRtTextRRRtArtistRRotsubplot_class_factorytSubplotRt SubplotZeroR?tmatplotlib.pyplottpyplottpltR:tfigtaxt add_subplotRRhRRRtnRtarangeRtxxtplotRt set_ylabelR>tshow(((sF/usr/lib64/python2.6/site-packages/mpl_toolkits/axes_grid/axislines.pyt,sZ(  4"6xYU