Skip to content

Commit 9627a01

Browse files
committed
deploy: e290226
1 parent 482f2bb commit 9627a01

File tree

4 files changed

+29
-27
lines changed

4 files changed

+29
-27
lines changed

_images/combined.png

4.51 KB
Loading

_sources/tutorial/tutorial_smartview.rst.txt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ are objects of the class :class:`Layout <layout.Layout>`. They contain:
316316
- ``name``: Identifies the layout, so it can be activated/deactivated in the GUI.
317317
- ``draw_tree()``: A function that sets style and decorations for the full tree.
318318
- ``draw_node()``: A function that sets style and decorations for the given nodes.
319-
- ``cache_size``: The number of arguments cached when calling `draw_node` (defaults to all).
319+
- ``cache_size``: The number of nodes cached when calling `draw_node` (defaults to all).
320320
- ``active``: Whether the layout will be immediately active when exploring (defaults to True).
321321

322322
Let's look at how to use them. The simplest case is::
@@ -731,35 +731,36 @@ Let's see an example combining styles and faces, for both the tree
731731
(with ``draw_tree``) and the nodes (with ``draw_node``)::
732732

733733
from ete4 import Tree
734-
from ete4.smartview import Layout, TextFace
734+
from ete4.smartview import Layout, Decoration, TextFace, LegendFace
735735

736736
t = Tree('((((a,b),c),d),e);')
737737

738738
def draw_tree(tree):
739-
yield Decoration(TextFace('Vowel title', fs_min=5, fs_max=12),
739+
yield {'dot': {'opacity': 1, 'fill': 'black'}}
740+
yield Decoration(TextFace('Vowel?', fs_min=6, fs_max=16),
740741
position='header')
741-
#yield Decoration(LegendFace('My legend',
742-
# variable='discrete',
743-
# colormap={'vowel': 'red', 'conostant': 'blue'}))
742+
yield Decoration(LegendFace('Type of letter',
743+
variable='discrete',
744+
colormap={'vowel': 'red', 'consonant': 'blue'}))
744745

745746
vowels = {'a', 'e', 'i', 'o', 'u'}
746747

747748
def draw_node(node):
748749
if not node.is_leaf:
749750
return
750751

752+
yield {'dot': {'shape': 'triangle', 'radius': 8}}
753+
751754
if node.name in vowels:
752-
yield {'dot': {'radius': 3},
753-
'box': {'fill': 'red'}}
754-
yield Decoration(TextFace('vowel!', style={'fill': 'red'}),
755+
yield {'box': {'fill': 'red'}}
756+
yield Decoration(TextFace('yes, a vowel', style={'fill': 'red'}),
755757
position='aligned')
756758
else:
757-
yield {'dot': {'radius': 3},
758-
'box': {'fill': 'blue'}}
759-
yield Decoration(TextFace('not vowel!', style={'fill': 'blue'}),
759+
yield {'box': {'fill': 'blue'}}
760+
yield Decoration(TextFace('not a vowel', style={'fill': 'blue'}),
760761
position='aligned')
761762

762-
layout = Layout('My layout', draw_tree=draw_tree, draw_node=draw_node)
763+
layout = Layout('Vowels layout', draw_tree=draw_tree, draw_node=draw_node)
763764
t.explore(layouts=[layout])
764765

765766
.. image:: ../images/combined.png

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tutorial/tutorial_smartview.html

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ <h3><a class="toc-backref" href="#id20" role="doc-backlink">Layouts</a><a class=
367367
<li><p><code class="docutils literal notranslate"><span class="pre">name</span></code>: Identifies the layout, so it can be activated/deactivated in the GUI.</p></li>
368368
<li><p><code class="docutils literal notranslate"><span class="pre">draw_tree()</span></code>: A function that sets style and decorations for the full tree.</p></li>
369369
<li><p><code class="docutils literal notranslate"><span class="pre">draw_node()</span></code>: A function that sets style and decorations for the given nodes.</p></li>
370-
<li><p><code class="docutils literal notranslate"><span class="pre">cache_size</span></code>: The number of arguments cached when calling <cite>draw_node</cite> (defaults to all).</p></li>
370+
<li><p><code class="docutils literal notranslate"><span class="pre">cache_size</span></code>: The number of nodes cached when calling <cite>draw_node</cite> (defaults to all).</p></li>
371371
<li><p><code class="docutils literal notranslate"><span class="pre">active</span></code>: Whether the layout will be immediately active when exploring (defaults to True).</p></li>
372372
</ul>
373373
<p>Let’s look at how to use them. The simplest case is:</p>
@@ -721,35 +721,36 @@ <h2><a class="toc-backref" href="#id29" role="doc-backlink">Combining styles and
721721
<p>Let’s see an example combining styles and faces, for both the tree
722722
(with <code class="docutils literal notranslate"><span class="pre">draw_tree</span></code>) and the nodes (with <code class="docutils literal notranslate"><span class="pre">draw_node</span></code>):</p>
723723
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">ete4</span><span class="w"> </span><span class="kn">import</span> <span class="n">Tree</span>
724-
<span class="kn">from</span><span class="w"> </span><span class="nn">ete4.smartview</span><span class="w"> </span><span class="kn">import</span> <span class="n">Layout</span><span class="p">,</span> <span class="n">TextFace</span>
724+
<span class="kn">from</span><span class="w"> </span><span class="nn">ete4.smartview</span><span class="w"> </span><span class="kn">import</span> <span class="n">Layout</span><span class="p">,</span> <span class="n">Decoration</span><span class="p">,</span> <span class="n">TextFace</span><span class="p">,</span> <span class="n">LegendFace</span>
725725

726726
<span class="n">t</span> <span class="o">=</span> <span class="n">Tree</span><span class="p">(</span><span class="s1">&#39;((((a,b),c),d),e);&#39;</span><span class="p">)</span>
727727

728728
<span class="k">def</span><span class="w"> </span><span class="nf">draw_tree</span><span class="p">(</span><span class="n">tree</span><span class="p">):</span>
729-
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;Vowel title&#39;</span><span class="p">,</span> <span class="n">fs_min</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">fs_max</span><span class="o">=</span><span class="mi">12</span><span class="p">),</span>
729+
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;dot&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;opacity&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;black&#39;</span><span class="p">}}</span>
730+
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;Vowel?&#39;</span><span class="p">,</span> <span class="n">fs_min</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span> <span class="n">fs_max</span><span class="o">=</span><span class="mi">16</span><span class="p">),</span>
730731
<span class="n">position</span><span class="o">=</span><span class="s1">&#39;header&#39;</span><span class="p">)</span>
731-
<span class="c1">#yield Decoration(LegendFace(&#39;My legend&#39;,</span>
732-
<span class="c1"># variable=&#39;discrete&#39;,</span>
733-
<span class="c1"># colormap={&#39;vowel&#39;: &#39;red&#39;, &#39;conostant&#39;: &#39;blue&#39;}))</span>
732+
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">LegendFace</span><span class="p">(</span><span class="s1">&#39;Type of letter&#39;</span><span class="p">,</span>
733+
<span class="n">variable</span><span class="o">=</span><span class="s1">&#39;discrete&#39;</span><span class="p">,</span>
734+
<span class="n">colormap</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;vowel&#39;</span><span class="p">:</span> <span class="s1">&#39;red&#39;</span><span class="p">,</span> <span class="s1">&#39;consonant&#39;</span><span class="p">:</span> <span class="s1">&#39;blue&#39;</span><span class="p">}))</span>
734735

735736
<span class="n">vowels</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;e&#39;</span><span class="p">,</span> <span class="s1">&#39;i&#39;</span><span class="p">,</span> <span class="s1">&#39;o&#39;</span><span class="p">,</span> <span class="s1">&#39;u&#39;</span><span class="p">}</span>
736737

737738
<span class="k">def</span><span class="w"> </span><span class="nf">draw_node</span><span class="p">(</span><span class="n">node</span><span class="p">):</span>
738739
<span class="k">if</span> <span class="ow">not</span> <span class="n">node</span><span class="o">.</span><span class="n">is_leaf</span><span class="p">:</span>
739740
<span class="k">return</span>
740741

742+
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;dot&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;shape&#39;</span><span class="p">:</span> <span class="s1">&#39;triangle&#39;</span><span class="p">,</span> <span class="s1">&#39;radius&#39;</span><span class="p">:</span> <span class="mi">8</span><span class="p">}}</span>
743+
741744
<span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">vowels</span><span class="p">:</span>
742-
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;dot&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;radius&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">},</span>
743-
<span class="s1">&#39;box&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;red&#39;</span><span class="p">}}</span>
744-
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;vowel!&#39;</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;red&#39;</span><span class="p">}),</span>
745+
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;box&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;red&#39;</span><span class="p">}}</span>
746+
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;yes, a vowel&#39;</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;red&#39;</span><span class="p">}),</span>
745747
<span class="n">position</span><span class="o">=</span><span class="s1">&#39;aligned&#39;</span><span class="p">)</span>
746748
<span class="k">else</span><span class="p">:</span>
747-
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;dot&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;radius&#39;</span><span class="p">:</span> <span class="mi">3</span><span class="p">},</span>
748-
<span class="s1">&#39;box&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;blue&#39;</span><span class="p">}}</span>
749-
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;not vowel!&#39;</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;blue&#39;</span><span class="p">}),</span>
749+
<span class="k">yield</span> <span class="p">{</span><span class="s1">&#39;box&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;blue&#39;</span><span class="p">}}</span>
750+
<span class="k">yield</span> <span class="n">Decoration</span><span class="p">(</span><span class="n">TextFace</span><span class="p">(</span><span class="s1">&#39;not a vowel&#39;</span><span class="p">,</span> <span class="n">style</span><span class="o">=</span><span class="p">{</span><span class="s1">&#39;fill&#39;</span><span class="p">:</span> <span class="s1">&#39;blue&#39;</span><span class="p">}),</span>
750751
<span class="n">position</span><span class="o">=</span><span class="s1">&#39;aligned&#39;</span><span class="p">)</span>
751752

752-
<span class="n">layout</span> <span class="o">=</span> <span class="n">Layout</span><span class="p">(</span><span class="s1">&#39;My layout&#39;</span><span class="p">,</span> <span class="n">draw_tree</span><span class="o">=</span><span class="n">draw_tree</span><span class="p">,</span> <span class="n">draw_node</span><span class="o">=</span><span class="n">draw_node</span><span class="p">)</span>
753+
<span class="n">layout</span> <span class="o">=</span> <span class="n">Layout</span><span class="p">(</span><span class="s1">&#39;Vowels layout&#39;</span><span class="p">,</span> <span class="n">draw_tree</span><span class="o">=</span><span class="n">draw_tree</span><span class="p">,</span> <span class="n">draw_node</span><span class="o">=</span><span class="n">draw_node</span><span class="p">)</span>
753754
<span class="n">t</span><span class="o">.</span><span class="n">explore</span><span class="p">(</span><span class="n">layouts</span><span class="o">=</span><span class="p">[</span><span class="n">layout</span><span class="p">])</span>
754755
</pre></div>
755756
</div>

0 commit comments

Comments
 (0)