Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: scverse/spatialdata-plot-tutorials
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: scverse/spatialdata-plot-tutorials
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: feat/as-points-tutorial
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 6 commits
  • 4 files changed
  • 2 contributors

Commits on Aug 14, 2026

  1. feat: add as_points tutorial

    Show the how and why of `as_points` on both render_shapes and
    render_labels, using a real Xenium breast-cancer section (~168k cells).
    Covers what it draws (one centroid dot per element), what it ignores
    (outline_*, shape, contour_px), the matplotlib->datashader backend
    switch at ~50k centroids, and the measured speed trade-off: a large
    win for shapes (up to ~16x), roughly neutral for labels (a mask
    already renders as a fast raster).
    
    Segmentation masks are derived from the real cell_boundaries via
    rasterize(return_regions_as_labels=True), since Xenium rep1 ships
    outlines as shapes with no native labels element.
    
    The 3.4 GB download makes the notebook too heavy for CI, so it is
    excluded from execute.yaml and its committed outputs are trusted.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    1fbd167 View commit details
    Browse the repository at this point in the history
  2. feat: add as_points tutorial

    Show as_points on render_shapes and render_labels using a real Xenium
    breast-cancer section (167780 cells). Covers what it draws (one centroid
    dot per element), the appearance controls that still apply (color, size,
    cmap, palette), what it ignores (outline_*, shape, contour_px), the
    matplotlib and datashader backends with the 50000-centroid switch, and
    the measured speed trade-off: a large win for shapes (up to 16x), about
    neutral for labels (a mask already renders as a fast raster).
    
    Segmentation masks are derived from the real cell_boundaries via
    rasterize(return_regions_as_labels=True), since Xenium rep1 ships
    outlines as shapes with no native labels element.
    
    The 3.4 GB download makes the notebook too heavy for CI, so it is
    excluded from execute.yaml and its committed outputs are trusted.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    64ee0fc View commit details
    Browse the repository at this point in the history
  3. docs: show the full section both ways in as_points

    Open the speed section with the entire 167780-cell section rendered as
    full geometry and as as_points, coloured by EPCAM. Previously the full
    dataset only appeared as as_points in the backend section; the
    full-geometry vs as_points comparison was limited to the crop.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    820f498 View commit details
    Browse the repository at this point in the history
  4. docs: dedupe full-section render and fix overlapping colorbars

    The default backend already draws the 167780-cell as_points panel with
    datashader, so the backend section's datashader render repeated the
    full-section image. Drop that render and explain the backend in prose,
    referencing the panel above.
    
    In the shared-scale two-panel crops, draw the colourbar only on the
    right panel so it no longer overlaps the neighbouring axes.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    db81f93 View commit details
    Browse the repository at this point in the history
  5. docs: give the full-section as_points panel full colour coverage

    At the default marker size the datashader spread left white gaps, so the
    whole-section panel looked grainy. Draw it with datashader and size=12 so
    each cell spreads into continuous coverage, matching the overview look,
    and note in the prose that size controls the spread on that backend.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    5f1e4a3 View commit details
    Browse the repository at this point in the history
  6. docs: drop the full-section comparison, keep the colourbar fix

    Revert the whole-slide full-geometry vs as_points panel and its
    follow-on tweaks; the notebook reads better without it. This restores
    the matplotlib vs datashader backend comparison that had been removed.
    The only change kept from that stretch is drawing a single colourbar
    per shared-scale panel pair, so they no longer overlap.
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    timtreis and claude committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    2fea6d0 View commit details
    Browse the repository at this point in the history
Loading