API Reference
LabwarePlotting._gridlines!LabwarePlotting.circleLabwarePlotting.letter_codeLabwarePlotting.place_shape!LabwarePlotting.plot_gridLabwarePlotting.plot_grid!LabwarePlotting.plot_heatmap!LabwarePlotting.rectangleLabwarePlotting.role_paletteLabwarePlotting.slas_rectangleLabwarePlotting.squareLabwarePlotting.wellnames
Full docstrings
LabwarePlotting._gridlines! — Method
_gridlines!(plt, R, C)Draw the black well-grid lines for an RxC grid onto plt. Factored out of plot_grid! so plot_heatmap! can redraw them on top of a heatmap fill, which would otherwise paint over and hide them.
LabwarePlotting.circle — Method
circle(x,y,d)Coordinate vectors for a circle of diameter d centered at (x,y).
LabwarePlotting.letter_code — Method
letter_code(n::Integer) -> StringBijective base-26 row label for row index n (1-indexed): 1->"A", ..., 26->"Z", 27->"AA", 28->"AB", ..., 52->"AZ", 53->"BA", .... Matches the classic spreadsheet-column scheme, and generalizes cleanly to arbitrary row counts (unlike a repeated-letter or fixed-length scheme).
LabwarePlotting.place_shape! — Method
place_shape!(plt, shape::Function, x, y, size; kwargs...)Draw shape(x,y,size) (any of rectangle/circle/square/ slas_rectangle, or a caller-supplied function with the same (x,y,size) -> coords contract) onto plt at the given center/size, for cases that place individual markers rather than fill a whole grid (well-highlighting, deck-slot outlines, non-wellplate labware).
LabwarePlotting.plot_grid! — Method
plot_grid!(plt::Plots.Plot, active::AbstractMatrix{Bool};
fillcolors::Union{Nothing,AbstractMatrix}=nothing,
haloframe::Union{Nothing,AbstractMatrix}=nothing,
halo_inset::Real=0.6, kwargs...) -> Plots.PlotDraw the shared "grid of wells" skeleton onto plt: axis limits sized to active's shape, an optional per-cell flat-color fill (fillcolors, same shape as active), black gridlines, and the standard orientation/labeling styling (flipped y-axis, bijective-base-26 lettered rows via letter_code, numbered columns mirrored to the top, no default ticks/legend/grid). Any additional kwargs are forwarded to the final plot! styling call (e.g. title).
haloframe (same shape as active, only meaningful together with fillcolors) overlays a "halo" frame on specific cells: any cell whose haloframe entry is not nothing/missing gets a full-cell square in that color, then a smaller inset square (halo_inset fraction of the cell, default 0.6) drawn back in that cell's own fillcolors color – so the halo color reads as a border/frame around the cell's underlying color rather than replacing it outright. Cells with a nothing/missing haloframe entry are unaffected, reproducing plain fillcolors-only rendering exactly. Useful for distinguishing a fixed, semantically-important category (e.g. positive/negative controls) from an underlying categorical grouping (e.g. which separable group/component a well belongs to) without losing either piece of information in one plot.
This is the one skeleton every plate/grid plot in the CHESS ecosystem shares – only the per-cell color source (a flat lookup, a role-based lookup, or nothing at all) differs between callers.
LabwarePlotting.plot_grid — Method
plot_grid(active::AbstractMatrix{Bool}; kwargs...) -> Plots.Plotplot_grid! onto a fresh Plots.plot().
LabwarePlotting.plot_heatmap! — Method
plot_heatmap!(plt, values::AbstractMatrix; colormap=cgrad([:white,:dodgerblue]), kwargs...)Overlay a continuous-value heatmap of values onto plt (typically called after plot_grid! so the heatmap sits inside the grid/gridline/lettered-row skeleton). Use NaN in values for cells that should render as the colormap's zero/blank end rather than a real measurement.
Redraws the black well-grid lines on top of the heatmap fill afterward, since heatmap!'s opaque per-cell coloring would otherwise paint over and hide any gridlines already drawn by plot_grid!.
LabwarePlotting.rectangle — Method
rectangle(x,y,w,h)An axis-aligned Plots.Shape with lower-left corner (x,y), width w, height h.
LabwarePlotting.role_palette — Method
role_palette(keys::AbstractVector; palette::String="Set2", overrides::Dict=Dict())
-> Dict{eltype(keys),Any}A consistent category-to-color mapping for any distinct set of keys (relation-type roles, group/component indices, ...), built from a named ColorBrewer palette (clamped to 3-8 colors) and cycled via mod1 for larger key sets. overrides pins specific keys to specific colors, taking precedence over the palette assignment. Shared by every package that colors wells/nodes categorically, so the same key always renders the same color everywhere in the CHESS ecosystem – e.g. palette="Set2" (the default) for relation-type roles, palette="Pastel2" for separable-group coloring.
LabwarePlotting.slas_rectangle — Method
slas_rectangle(x,y,d)Coordinate vectors for a SLAS-plate-proportioned rectangle (width = 1.5 * height d) centered at (x,y).
LabwarePlotting.square — Method
square(x,y,d)Coordinate vectors for a square of side d centered at (x,y).
LabwarePlotting.wellnames — Method
wellnames(active::AbstractMatrix) -> Matrix{String}Well names ("A1", "H12", ...) for every cell of a grid shaped like active, using letter_code for rows.