@@ -62,13 +62,13 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
6262< span class ="kn "> from</ span > < span class ="w "> </ span > < span class ="nn "> .</ span > < span class ="w "> </ span > < span class ="kn "> import</ span > < span class ="n "> graphics</ span > < span class ="k "> as</ span > < span class ="n "> gr</ span >
6363
6464
65+ < span class ="c1 "> # Default anchors. The x, y go between -1 to +1, with 0 the center.</ span >
6566< span class ="n "> default_anchors</ span > < span class ="o "> =</ span > < span class ="p "> {</ span > < span class ="s1 "> 'top'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span > < span class ="c1 "> # left, bottom</ span >
6667 < span class ="s1 "> 'bottom'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span > < span class ="c1 "> # left, top</ span >
6768 < span class ="s1 "> 'right'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ),</ span > < span class ="c1 "> # left, middle</ span >
6869 < span class ="s1 "> 'left'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ),</ span > < span class ="c1 "> # right, middle</ span >
6970 < span class ="s1 "> 'aligned'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ),</ span > < span class ="c1 "> # left, middle</ span >
70- < span class ="s1 "> 'header'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> ),</ span > < span class ="c1 "> # left, bottom</ span >
71- < span class ="s1 "> 'footer'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> )}</ span > < span class ="c1 "> # (unused for the moment)</ span >
71+ < span class ="s1 "> 'header'</ span > < span class ="p "> :</ span > < span class ="p "> (</ span > < span class ="o "> -</ span > < span class ="mi "> 1</ span > < span class ="p "> ,</ span > < span class ="mi "> 1</ span > < span class ="p "> )}</ span > < span class ="c1 "> # left, bottom</ span >
7272
7373
7474< div class ="viewcode-block " id ="Face ">
@@ -355,7 +355,7 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
355355 < span class ="n "> zx</ span > < span class ="p "> ,</ span > < span class ="n "> zy</ span > < span class ="o "> =</ span > < span class ="n "> zoom</ span >
356356
357357 < span class ="c1 "> # Find the circle radius (cr) in pixels.</ span >
358- < span class ="k "> assert</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
358+ < span class ="k "> assert</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class =" p " > , </ span > < span class =" s1 " > 'rmax needed' </ span >
359359 < span class ="n "> cr</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span >
360360 < span class ="k "> if</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
361361 < span class ="n "> cr_x</ span > < span class ="o "> =</ span > < span class ="n "> zx</ span > < span class ="o "> *</ span > < span class ="n "> dx</ span > < span class ="o "> /</ span > < span class ="mi "> 2</ span >
@@ -397,7 +397,7 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
397397 < span class ="n "> zx</ span > < span class ="p "> ,</ span > < span class ="n "> zy</ span > < span class ="o "> =</ span > < span class ="n "> zoom</ span >
398398
399399 < span class ="c1 "> # Find the (approx.) radius (cr) of circumscribing circle in pixels.</ span >
400- < span class ="k "> assert</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
400+ < span class ="k "> assert</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class =" p " > , </ span > < span class =" s1 " > 'rmax needed' </ span >
401401 < span class ="n "> cr</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rmax</ span >
402402 < span class ="k "> if</ span > < span class ="n "> dx</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
403403 < span class ="n "> cr_x</ span > < span class ="o "> =</ span > < span class ="n "> zx</ span > < span class ="o "> *</ span > < span class ="n "> dx</ span > < span class ="o "> /</ span > < span class ="mi "> 2</ span >
@@ -565,7 +565,7 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
565565 < span class ="k "> if</ span > < span class ="n "> dx</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on dx? make it as big as possible</ span >
566566 < span class ="n "> dx</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> poswidth</ span > < span class ="o "> *</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> seq</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="n "> zx</ span >
567567
568- < span class ="k "> assert</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
568+ < span class ="k "> assert</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class =" p " > , </ span > < span class =" s1 " > 'hmax needed' </ span >
569569 < span class ="k "> if</ span > < span class ="n "> dy</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on y? there better be hmax then</ span >
570570 < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="o "> /</ span > < span class ="n "> zy</ span >
571571 < span class ="k "> elif</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span > < span class ="c1 "> # if dy > 0, but hmax defined, take the min</ span >
@@ -609,7 +609,7 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
609609 < span class ="k "> if</ span > < span class ="n "> dx</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on dx? make it as big as possible</ span >
610610 < span class ="n "> dx</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> poswidth</ span > < span class ="o "> *</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> values</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="n "> zx</ span >
611611
612- < span class ="k "> assert</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span >
612+ < span class ="k "> assert</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class =" p " > , </ span > < span class =" s1 " > 'hmax needed' </ span >
613613 < span class ="k "> if</ span > < span class ="n "> dy</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on y? there better be hmax then</ span >
614614 < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="o "> /</ span > < span class ="n "> zy</ span >
615615 < span class ="k "> elif</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span > < span class ="c1 "> # if dy > 0, but hmax defined, take the min</ span >
@@ -625,6 +625,51 @@ <h1>Source code for ete4.smartview.faces</h1><div class="highlight"><pre>
625625
626626
627627
628+ < div class ="viewcode-block " id ="TextArrayFace ">
629+ < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.faces.TextArrayFace "> [docs]</ a >
630+ < span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc "> TextArrayFace</ span > < span class ="p "> (</ span > < span class ="n "> Face</ span > < span class ="p "> ):</ span >
631+ < span class ="w "> </ span > < span class ="sd "> """An array of texts."""</ span >
632+
633+ < div class ="viewcode-block " id ="TextArrayFace.__init__ ">
634+ < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.faces.TextArrayFace.__init__ "> [docs]</ a >
635+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="fm "> __init__</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> texts</ span > < span class ="p "> ,</ span > < span class ="n "> fs_max</ span > < span class ="o "> =</ span > < span class ="mi "> 16</ span > < span class ="p "> ,</ span > < span class ="n "> rotation</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span >
636+ < span class ="n "> poswidth</ span > < span class ="o "> =</ span > < span class ="mi "> 15</ span > < span class ="p "> ,</ span > < span class ="n "> hmax</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="n "> style</ span > < span class ="o "> =</ span > < span class ="s1 "> ''</ span > < span class ="p "> ,</ span >
637+ < span class ="n "> position</ span > < span class ="o "> =</ span > < span class ="s1 "> 'top'</ span > < span class ="p "> ,</ span > < span class ="n "> column</ span > < span class ="o "> =</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="n "> anchor</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span > < span class ="p "> ):</ span >
638+ < span class ="nb "> super</ span > < span class ="p "> ()</ span > < span class ="o "> .</ span > < span class ="fm "> __init__</ span > < span class ="p "> (</ span > < span class ="n "> position</ span > < span class ="p "> ,</ span > < span class ="n "> column</ span > < span class ="p "> ,</ span > < span class ="n "> anchor</ span > < span class ="p "> )</ span >
639+
640+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> texts</ span > < span class ="o "> =</ span > < span class ="n "> texts</ span >
641+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> fs_max</ span > < span class ="o "> =</ span > < span class ="n "> fs_max</ span >
642+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rotation</ span > < span class ="o "> =</ span > < span class ="n "> rotation</ span >
643+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> poswidth</ span > < span class ="o "> =</ span > < span class ="n "> poswidth</ span > < span class ="c1 "> # width in pixels of each position</ span >
644+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="o "> =</ span > < span class ="n "> hmax</ span > < span class ="c1 "> # maximum height in pixels</ span >
645+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> style</ span > < span class ="o "> =</ span > < span class ="n "> style</ span > </ div >
646+
647+
648+ < div class ="viewcode-block " id ="TextArrayFace.draw ">
649+ < a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.faces.TextArrayFace.draw "> [docs]</ a >
650+ < span class ="k "> def</ span > < span class ="w "> </ span > < span class ="nf "> draw</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="p "> ,</ span > < span class ="n "> nodes</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > < span class ="p "> ,</ span > < span class ="n "> collapsed</ span > < span class ="p "> ,</ span > < span class ="n "> zoom</ span > < span class ="p "> ,</ span > < span class ="n "> ax_ay</ span > < span class ="p "> ,</ span > < span class ="n "> r</ span > < span class ="p "> ):</ span >
651+ < span class ="n "> dx</ span > < span class ="p "> ,</ span > < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="n "> size</ span >
652+ < span class ="n "> zx</ span > < span class ="p "> ,</ span > < span class ="n "> zy</ span > < span class ="o "> =</ span > < span class ="n "> zoom</ span >
653+
654+ < span class ="k "> if</ span > < span class ="n "> dx</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on dx? make it as big as possible</ span >
655+ < span class ="n "> dx</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> poswidth</ span > < span class ="o "> *</ span > < span class ="nb "> len</ span > < span class ="p "> (</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> texts</ span > < span class ="p "> )</ span > < span class ="o "> /</ span > < span class ="n "> zx</ span >
656+
657+ < span class ="k "> assert</ span > < span class ="n "> dy</ span > < span class ="o "> ></ span > < span class ="mi "> 0</ span > < span class ="ow "> or</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> ,</ span > < span class ="s1 "> 'hmax needed'</ span >
658+ < span class ="k "> if</ span > < span class ="n "> dy</ span > < span class ="o "> <=</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span > < span class ="c1 "> # no limit on y? there better be hmax then</ span >
659+ < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="o "> /</ span > < span class ="n "> zy</ span >
660+ < span class ="k "> elif</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="p "> :</ span > < span class ="c1 "> # if dy > 0, but hmax defined, take the min</ span >
661+ < span class ="n "> dy</ span > < span class ="o "> =</ span > < span class ="nb "> min</ span > < span class ="p "> (</ span > < span class ="n "> dy</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> hmax</ span > < span class ="o "> /</ span > < span class ="n "> zy</ span > < span class ="p "> )</ span > < span class ="c1 "> # make dy so pixel height < hmax</ span >
662+
663+ < span class ="n "> size</ span > < span class ="o "> =</ span > < span class ="n "> Size</ span > < span class ="p "> (</ span > < span class ="n "> dx</ span > < span class ="p "> ,</ span > < span class ="n "> dy</ span > < span class ="p "> )</ span >
664+ < span class ="n "> box</ span > < span class ="o "> =</ span > < span class ="n "> make_box</ span > < span class ="p "> ((</ span > < span class ="mi "> 0</ span > < span class ="p "> ,</ span > < span class ="mi "> 0</ span > < span class ="p "> ),</ span > < span class ="n "> size</ span > < span class ="p "> )</ span >
665+ < span class ="n "> graphics</ span > < span class ="o "> =</ span > < span class ="p "> [</ span > < span class ="n "> gr</ span > < span class ="o "> .</ span > < span class ="n "> draw_textarray</ span > < span class ="p "> (</ span > < span class ="n "> box</ span > < span class ="p "> ,</ span > < span class ="n "> ax_ay</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> texts</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> fs_max</ span > < span class ="p "> ,</ span >
666+ < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> rotation</ span > < span class ="p "> ,</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> style</ span > < span class ="p "> )]</ span >
667+
668+ < span class ="k "> return</ span > < span class ="n "> graphics</ span > < span class ="p "> ,</ span > < span class ="n "> size</ span > </ div >
669+ </ div >
670+
671+
672+
628673< div class ="viewcode-block " id ="LegendFace ">
629674< a class ="viewcode-back " href ="../../../reference/reference_smartview.html#ete4.smartview.faces.LegendFace "> [docs]</ a >
630675< span class ="k "> class</ span > < span class ="w "> </ span > < span class ="nc "> LegendFace</ span > < span class ="p "> (</ span > < span class ="n "> Face</ span > < span class ="p "> ):</ span >
0 commit comments