Skip to content

Commit 97708a2

Browse files
committed
Preview for PR #15 2cf6c29
1 parent 1413726 commit 97708a2

6 files changed

Lines changed: 114 additions & 157 deletions
205 KB
Loading
141 KB
Loading
38.9 KB
Loading

pr-15/_sources/notebooks/tutorials/as_points.ipynb

Lines changed: 96 additions & 126 deletions
Large diffs are not rendered by default.

pr-15/notebooks/tutorials/as_points.html

Lines changed: 17 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,8 @@ <h2>2. Colour and size still apply<a class="headerlink" href="#colour-and-size-s
560560
<div class="cell docutils container">
561561
<div class="cell_input docutils container">
562562
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="mf">5.5</span><span class="p">))</span>
563-
<span class="n">crop</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span><span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">show</span><span class="p">(</span>
563+
<span class="c1"># Both panels share the same EPCAM scale, so we draw a single colourbar (right).</span>
564+
<span class="n">crop</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span><span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">colorbar</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">show</span><span class="p">(</span>
564565
<span class="n">ax</span><span class="o">=</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;full geometry, colour = EPCAM&quot;</span>
565566
<span class="p">)</span>
566567
<span class="n">crop</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span>
@@ -571,7 +572,7 @@ <h2>2. Colour and size still apply<a class="headerlink" href="#colour-and-size-s
571572
</div>
572573
</div>
573574
<div class="cell_output docutils container">
574-
<img alt="../../_images/f664a4c304f2eeb3861e5f343b4193db75e6766f96fedfee843cb2e9b649fe53.png" src="../../_images/f664a4c304f2eeb3861e5f343b4193db75e6766f96fedfee843cb2e9b649fe53.png" />
575+
<img alt="../../_images/2e89be7ab5f6f3e9ec0c3660503479d32fcf1e947cc2a0693d3592de6a1f6544.png" src="../../_images/2e89be7ab5f6f3e9ec0c3660503479d32fcf1e947cc2a0693d3592de6a1f6544.png" />
575576
</div>
576577
</div>
577578
<p><code class="docutils literal notranslate"><span class="pre">size</span></code> sets the marker area (matplotlib’s scatter <code class="docutils literal notranslate"><span class="pre">s</span></code>), independent of the data.
@@ -582,7 +583,7 @@ <h2>2. Colour and size still apply<a class="headerlink" href="#colour-and-size-s
582583
<div class="cell_input docutils container">
583584
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="mf">5.5</span><span class="p">))</span>
584585
<span class="n">crop</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span>
585-
<span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">as_points</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">8</span>
586+
<span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">as_points</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">colorbar</span><span class="o">=</span><span class="kc">False</span>
586587
<span class="p">)</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">ax</span><span class="o">=</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;size=8&quot;</span><span class="p">)</span>
587588
<span class="n">crop</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span>
588589
<span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">as_points</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="mi">80</span>
@@ -592,7 +593,7 @@ <h2>2. Colour and size still apply<a class="headerlink" href="#colour-and-size-s
592593
</div>
593594
</div>
594595
<div class="cell_output docutils container">
595-
<img alt="../../_images/6896d6f3e431546fb9535b1c3bf97ddb2576ee76eafb09f8b4ac8b47eccd7efc.png" src="../../_images/6896d6f3e431546fb9535b1c3bf97ddb2576ee76eafb09f8b4ac8b47eccd7efc.png" />
596+
<img alt="../../_images/7d5e0e9f388852ae2adba09bfae619e6fdb43ebe4c40b88edb23bdea02385df2.png" src="../../_images/7d5e0e9f388852ae2adba09bfae619e6fdb43ebe4c40b88edb23bdea02385df2.png" />
596597
</div>
597598
</div>
598599
</section>
@@ -693,10 +694,10 @@ <h2>4. The speed trade-off<a class="headerlink" href="#the-speed-trade-off" titl
693694
<div class="cell_output docutils container">
694695
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>N= 1000: full 0.03s as_points 0.01s (4x)
695696
N= 5000: full 0.13s as_points 0.02s (8x)
696-
N= 20000: full 0.51s as_points 0.04s (13x)
697-
N= 50000: full 1.26s as_points 0.09s (15x)
698-
N= 100000: full 2.50s as_points 0.17s (15x)
699-
N= 167780: full 4.19s as_points 0.27s (16x)
697+
N= 20000: full 0.50s as_points 0.04s (13x)
698+
N= 50000: full 1.23s as_points 0.09s (14x)
699+
N= 100000: full 2.48s as_points 0.17s (15x)
700+
N= 167780: full 4.15s as_points 0.27s (16x)
700701
</pre></div>
701702
</div>
702703
</div>
@@ -733,10 +734,10 @@ <h2>4. The speed trade-off<a class="headerlink" href="#the-speed-trade-off" titl
733734
</div>
734735
</div>
735736
<div class="cell_output docutils container">
736-
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>N= 424: full mask 0.10s as_points 0.09s
737+
<div class="output stream highlight-myst-ansi notranslate"><div class="highlight"><pre><span></span>N= 424: full mask 0.09s as_points 0.09s
737738
N= 5833: full mask 0.10s as_points 0.10s
738739
N= 18606: full mask 0.12s as_points 0.12s
739-
N= 39125: full mask 0.16s as_points 0.15s
740+
N= 39125: full mask 0.15s as_points 0.15s
740741
</pre></div>
741742
</div>
742743
</div>
@@ -762,7 +763,7 @@ <h2>4. The speed trade-off<a class="headerlink" href="#the-speed-trade-off" titl
762763
</div>
763764
</div>
764765
<div class="cell_output docutils container">
765-
<img alt="../../_images/827afb7dddaec5285fd0b9c78af6fd72749175941494151c9ae8f58aa57ca193.png" src="../../_images/827afb7dddaec5285fd0b9c78af6fd72749175941494151c9ae8f58aa57ca193.png" />
766+
<img alt="../../_images/de59cbe19573655e864703983ac44f0046efcf54ff6bc63f7788fab428a29a51.png" src="../../_images/de59cbe19573655e864703983ac44f0046efcf54ff6bc63f7788fab428a29a51.png" />
766767
</div>
767768
</div>
768769
<p>The two panels behave differently:</p>
@@ -790,27 +791,13 @@ <h2>5. Backend and the 50000 rule<a class="headerlink" href="#backend-and-the-50
790791
centroids (<code class="docutils literal notranslate"><span class="pre">AS_POINTS_DS_AUTO</span> <span class="pre">=</span> <span class="pre">50000</span></code>), because matplotlib’s per-glyph cost
791792
starts to dominate around there.</p></li>
792793
</ul>
794+
<p>The full-section <code class="docutils literal notranslate"><span class="pre">as_points</span></code> panel above used the default, so with 167780 cells
795+
it was already drawn by datashader. Passing <code class="docutils literal notranslate"><span class="pre">method=&quot;matplotlib&quot;</span></code> would force
796+
per-glyph scatter instead, and <code class="docutils literal notranslate"><span class="pre">method=&quot;datashader&quot;</span></code> forces the raster at any
797+
size.</p>
793798
<p>datashader aggregates and then shades, so it cannot represent one distinct random
794799
colour per cell, which is the default colouring of a labels element with no
795-
colour column. In that case it falls back to matplotlib with a warning. With a
796-
real colour column, as below, both backends work and differ only in appearance.</p>
797-
<div class="cell docutils container">
798-
<div class="cell_input docutils container">
799-
<div class="highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">fig</span><span class="p">,</span> <span class="n">axes</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">11</span><span class="p">,</span> <span class="mf">5.5</span><span class="p">))</span>
800-
<span class="n">sdata</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span>
801-
<span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">as_points</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">&quot;matplotlib&quot;</span>
802-
<span class="p">)</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">ax</span><span class="o">=</span><span class="n">axes</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;matplotlib (167780 dots)&quot;</span><span class="p">)</span>
803-
<span class="n">sdata</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">render_shapes</span><span class="p">(</span>
804-
<span class="s2">&quot;cell_circles&quot;</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;EPCAM&quot;</span><span class="p">,</span> <span class="n">cmap</span><span class="o">=</span><span class="s2">&quot;magma&quot;</span><span class="p">,</span> <span class="n">as_points</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">method</span><span class="o">=</span><span class="s2">&quot;datashader&quot;</span>
805-
<span class="p">)</span><span class="o">.</span><span class="n">pl</span><span class="o">.</span><span class="n">show</span><span class="p">(</span><span class="n">ax</span><span class="o">=</span><span class="n">axes</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">title</span><span class="o">=</span><span class="s2">&quot;datashader&quot;</span><span class="p">)</span>
806-
<span class="n">fig</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span>
807-
</pre></div>
808-
</div>
809-
</div>
810-
<div class="cell_output docutils container">
811-
<img alt="../../_images/10477e56009357f96b8f3de3cd9b7de98cb94da4e83db5799c2872f143e83d71.png" src="../../_images/10477e56009357f96b8f3de3cd9b7de98cb94da4e83db5799c2872f143e83d71.png" />
812-
</div>
813-
</div>
800+
colour column. In that case it falls back to matplotlib with a warning.</p>
814801
</section>
815802
<section id="when-to-reach-for-as-points">
816803
<h2>When to reach for <code class="docutils literal notranslate"><span class="pre">as_points</span></code><a class="headerlink" href="#when-to-reach-for-as-points" title="Link to this heading">#</a></h2>

pr-15/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.

0 commit comments

Comments
 (0)