Class: Figure

A publication figure, a mosaic of panels rendered from result containers. Reuses name (identifier) and description (caption).

URI: schema:ImageObject

 classDiagram
    class Figure
    click Figure href "./Figure.html"
      Figure : animation
        
          
    
        
        
        Figure --> "0..1" Animation : animation
        click Animation href "./Animation.html"
    

        
      Figure : auto_format
        
          
    
        
        
        Figure --> "0..1" Boolean : auto_format
        click Boolean href "../http://www.w3.org/2001/XMLSchema#boolean.html"
    

        
      Figure : code_modules
        
          
    
        
        
        Figure --> "*" String : code_modules
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : description
        
          
    
        
        
        Figure --> "0..1" String : description
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : dpi
        
          
    
        
        
        Figure --> "0..1" Integer : dpi
        click Integer href "../http://www.w3.org/2001/XMLSchema#integer.html"
    

        
      Figure : font_size
        
          
    
        
        
        Figure --> "0..1" Float : font_size
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : format
        
          
    
        
        
        Figure --> "0..1" String : format
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : height
        
          
    
        
        
        Figure --> "0..1" Float : height
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : height_ratios
        
          
    
        
        
        Figure --> "*" Float : height_ratios
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : label
        
          
    
        
        
        Figure --> "0..1" String : label
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : layout
        
          
    
        
        
        Figure --> "0..1" String : layout
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : layout_engine
        
          
    
        
        
        Figure --> "0..1" LayoutEngine : layout_engine
        click LayoutEngine href "../../enums/LayoutEngine.html"
    

        
      Figure : name
        
          
    
        
        
        Figure --> "1" String : name
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : pad
        
          
    
        
        
        Figure --> "0..1" Float : pad
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : panel_number_format
        
          
    
        
        
        Figure --> "0..1" String : panel_number_format
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : panel_number_loc
        
          
    
        
        
        Figure --> "0..1" Corner : panel_number_loc
        click Corner href "../../enums/Corner.html"
    

        
      Figure : panel_number_offset
        
          
    
        
        
        Figure --> "*" Float : panel_number_offset
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : panel_number_size
        
          
    
        
        
        Figure --> "0..1" Float : panel_number_size
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : panel_numbers
        
          
    
        
        
        Figure --> "0..1" Boolean : panel_numbers
        click Boolean href "../http://www.w3.org/2001/XMLSchema#boolean.html"
    

        
      Figure : panels
        
          
    
        
        
        Figure --> "*" Panel : panels
        click Panel href "./Panel.html"
    

        
      Figure : part
        
          
    
        
        
        Figure --> "0..1" ReportPart : part
        click ReportPart href "../../enums/ReportPart.html"
    

        
      Figure : provenance
        
          
    
        
        
        Figure --> "0..1" Provenance : provenance
        click Provenance href "./Provenance.html"
    

        
      Figure : reference_image
        
          
    
        
        
        Figure --> "0..1" String : reference_image
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : share_x
        
          
    
        
        
        Figure --> "*" String : share_x
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : share_y
        
          
    
        
        
        Figure --> "*" String : share_y
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : spine_offset
        
          
    
        
        
        Figure --> "0..1" Float : spine_offset
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : spines
        
          
    
        
        
        Figure --> "0..1" String : spines
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : style
        
          
    
        
        
        Figure --> "*" String : style
        click String href "../http://www.w3.org/2001/XMLSchema#string.html"
    

        
      Figure : theme
        
          
    
        
        
        Figure --> "0..1" Theme : theme
        click Theme href "./Theme.html"
    

        
      Figure : trim_margins
        
          
    
        
        
        Figure --> "0..1" Boolean : trim_margins
        click Boolean href "../http://www.w3.org/2001/XMLSchema#boolean.html"
    

        
      Figure : width
        
          
    
        
        
        Figure --> "0..1" Float : width
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : width_ratios
        
          
    
        
        
        Figure --> "*" Float : width_ratios
        click Float href "../http://www.w3.org/2001/XMLSchema#float.html"
    

        
      Figure : workflow_overrides
        
          
    
        
        
        Figure --> "0..1" WorkflowConfig : workflow_overrides
        click WorkflowConfig href "./WorkflowConfig.html"
    

        
      

Class Properties

Property Value
Class URI schema:ImageObject

Slots

Name Cardinality and Range Description Inheritance
name 1
xsd:string
Globally unique identifier for the entity direct
description 0..1
xsd:string
direct
provenance 0..1
Provenance
W3C PROV-O aligned provenance for this entity — what it was derived from, whi… direct
part 0..1
ReportPart
Which part of a generated report this belongs in — the main Methods or the su… direct
layout 0..1
xsd:string
bsplot mosaic string; letters = panel keys, slash (or newline) = new row, rep… direct
theme 0..1
Theme
The look this figure declares: its colours and the geometry a style sheet use… direct
style *
xsd:string
Style layers underneath the theme, applied left to right: a registered bsplot… direct
format 0..1
xsd:string
Output format (pdf/svg/png) direct
reference_image 0..1
xsd:string
The published figure this one reproduces, as a path relative to the study roo… direct
label 0..1
xsd:string
The heading this figure carries in a report direct
width 0..1
xsd:float
Figure width in mm (physical print size) direct
height 0..1
xsd:float
Figure height in mm (physical print size) direct
dpi 0..1
xsd:integer
Raster resolution (dots per inch); scales pixel output only, not the physical… direct
trim_margins 0..1
xsd:boolean
Trim surrounding whitespace from the saved figure (default true) direct
pad 0..1
xsd:float
Whitespace left around the content when trimming, in inches direct
font_size 0..1
xsd:float
Base font size in points (physical: 1 pt = 1/72 inch) direct
auto_format 0..1
xsd:boolean
Apply bsplot’s format_fig (tick/label normalisation + panel numbers) direct
panel_numbers 0..1
xsd:boolean
Draw automatic panel letters (a, b, direct
panel_number_format 0..1
xsd:string
Python format string applied to each panel letter: ‘{}’ -> ‘a’, ‘({})’ -> ’(a… direct
panel_number_loc 0..1
Corner
Which corner the panel letter sits in direct
panel_number_offset *
xsd:float
[dx, dy] shift of every panel letter from its corner, in axes fractions direct
panel_number_size 0..1
xsd:float
Panel-letter size in points direct
height_ratios *
xsd:float
Relative heights of the mosaic rows, e direct
width_ratios *
xsd:float
Relative widths of the mosaic columns direct
spines 0..1
xsd:string
Axes spine style: ‘box’ (all 4 spines, closed boxes — e direct
layout_engine 0..1
LayoutEngine
Which layout engine positions the panels direct
spine_offset 0..1
xsd:float
How far the left and bottom spines sit outside the data area, in axes fractio… direct
workflow_overrides 0..1
WorkflowConfig
Per-figure HPC/workflow resource refinement (reuses WorkflowConfig, same patt… direct
code_modules *
xsd:string
Importable module names whose import registers this figure’s custom panels / … direct
share_x *
xsd:string
Panel groups that share one x scale, each entry a comma-separated list of mos… direct
share_y *
xsd:string
Panel groups that share one y scale, each entry a comma-separated list of mos… direct
animation 0..1
Animation
Turns the figure into a movie over one dimension of its data instead of a sti… direct
panels *
Panel
Panels keyed by their mosaic label direct

Usages

used by used in type used
SimulationStudy figures range Figure

Identifier and Mapping Information

Schema Source

  • from schema: https://w3id.org/tvbo/figure

Mappings

Mapping Type Mapped Value
self schema:ImageObject
native tvbo:Figure

LinkML Source

Direct

name: Figure
description: A publication figure, a mosaic of panels rendered from result containers.
  Reuses name (identifier) and description (caption).
from_schema: https://w3id.org/tvbo/figure
slots:
- name
- description
- provenance
- part
attributes:
  layout:
    name: layout
    description: bsplot mosaic string; letters = panel keys, slash (or newline) =
      new row, repeated letters span cells, dot = empty. e.g. aab/ccb.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
  theme:
    name: theme
    description: 'The look this figure declares: its colours and the geometry a style
      sheet used to own. Whatever it states beats every layer in `style`, always —
      declared beats layered, so a figure''s look can be read off its own spec instead
      of reconstructed from the sheets underneath it. Start from the curated one with
      `theme: {iri: tvbo:theme/default}` and state only the differences.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: Theme
    inlined: true
  style:
    name: style
    description: 'Style layers underneath the theme, applied left to right: a registered
      bsplot style name (`tvbo`, `nature`) or a path to an .mplstyle. This is where
      a look TVB-O has no field for goes — another project''s house style, a journal''s
      sheet, the rcParams of a paper being reproduced. Anything `theme` states wins
      over all of it. The name ''tvbo-palette'' is an alias for `theme: {iri: tvbo:theme/default}`,
      kept because it reads well in a list.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    - Layer
    range: string
    multivalued: true
  format:
    name: format
    description: Output format (pdf/svg/png). Unset defers to the renderer default.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    - Animation
    - RenderSpec
    - Matrix
    - Edge
    - DataSource
    - ResultBinding
    - ArchiveConfig
    range: string
  reference_image:
    name: reference_image
    description: The published figure this one reproduces, as a path relative to the
      study root (e.g. original_study/img/fig_04.png). Names the A/B target for `tvbo
      figure compare`, which measures panel geometry against it; it is never a data
      source, and never rendered into a panel.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
  label:
    name: label
    description: The heading this figure carries in a report. Unset, a report reads
      the paper's own number out of the name (Fig4, EDF10). A replication that answers
      a question the paper left open produces figures with no published counterpart,
      and those need a title of their own rather than a number that would read as
      the paper's.
    from_schema: https://w3id.org/tvbo/figure
    domain_of:
    - ParcellationTerminology
    - Subject
    - Session
    - Dataset
    - Contact
    - SoftwareEnvironment
    - Figure
    - Panel
    - Inset
    - Layer
    - Colorbar
    - Rule
    - Equation
    - Stimulus
    - Event
    - Parcellation
    - Tractogram
    - Matrix
    - Phenotype
    - Network
    - Node
    - Edge
    - Observation
    - Dynamics
    - StateVariable
    - Parameter
    - Function
    - FunctionCall
    - DerivedVariable
    - RandomStream
    - DataSource
    - OptimizationStage
    - Exploration
    - ExplorationAxis
    - FreeParameter
    - Inference
    - AlgorithmStage
    - TuningObjective
    - Continuation
    - Coupling
    - RegionMapping
    - SimulationExperiment
    - SimulationStudy
    - TimeSeries
    - NDArray
    - SpatialDomain
    - Mesh
    - SpatialField
    - FieldStateVariable
    - DifferentialOperator
    - BoundaryCondition
    - PDESolver
    - PDE
    range: string
  width:
    name: width
    description: Figure width in mm (physical print size). Font size is in points
      and independent of this, so a smaller figure makes text relatively larger.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    - Colorbar
    - Rule
    - RenderSpec
    range: float
  height:
    name: height
    description: Figure height in mm (physical print size).
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    - RenderSpec
    range: float
  dpi:
    name: dpi
    description: Raster resolution (dots per inch); scales pixel output only, not
      the physical size or the font size.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: integer
  trim_margins:
    name: trim_margins
    description: Trim surrounding whitespace from the saved figure (default true).
      Trimming re-crops to the drawn content, so the saved aspect can differ from
      width/height; set false to preserve the declared width×height proportions exactly,
      e.g. to match an original figure. Renders as bbox_inches='tight' on a matplotlib
      backend.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: boolean
  pad:
    name: pad
    description: Whitespace left around the content when trimming, in inches. Defaults
      to the backend's own margin (0.1 in for matplotlib), which is visible padding
      at journal column widths; 0 crops flush to the drawn content. Ignored when trim_margins
      is false, where the declared canvas fixes the margins instead.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    - Colorbar
    range: float
  font_size:
    name: font_size
    description: 'Base font size in points (physical: 1 pt = 1/72 inch). The real
      text size, unchanged by figure size or dpi; set it (or the width) so labels
      are legible at print size.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
  auto_format:
    name: auto_format
    description: Apply bsplot's format_fig (tick/label normalisation + panel numbers).
      Set false to keep full manual control, e.g. when a study's own .mplstyle already
      defines the look.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: boolean
  panel_numbers:
    name: panel_numbers
    description: Draw automatic panel letters (a, b, ...). Independent of auto_format
      so a study can keep its own tick styling and still get numbered panels.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: boolean
  panel_number_format:
    name: panel_number_format
    description: 'Python format string applied to each panel letter: ''{}'' -> ''a'',
      ''({})'' -> ''(a)'', ''{}.'' -> ''a.''. Defaults to ''{}''. Match the target
      journal''s convention.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
  panel_number_loc:
    name: panel_number_loc
    description: Which corner the panel letter sits in. Unset keeps bsplot's own default
      placement; many journals (and Taher Fig 5) use 'upper right'.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: Corner
  panel_number_offset:
    name: panel_number_offset
    description: '[dx, dy] shift of every panel letter from its corner, in axes fractions.
      The default sits it on the axes corner, where a top y-tick label can reach it;
      a small negative dx clears the tick labels.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
    multivalued: true
  panel_number_size:
    name: panel_number_size
    description: Panel-letter size in points. Unset scales it above the body font_size,
      the convention most journals follow — a letter set at the body size reads as
      a tick label rather than as the panel's name.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
  height_ratios:
    name: height_ratios
    description: Relative heights of the mosaic rows, e.g. [1.15, 1, 1, 1] to make
      the top panel taller. Length = number of rows.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
    multivalued: true
  width_ratios:
    name: width_ratios
    description: Relative widths of the mosaic columns.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
    multivalued: true
  spines:
    name: spines
    description: 'Axes spine style: ''box'' (all 4 spines, closed boxes — e.g. Taher)
      or ''open'' (left+bottom only). Unset defers to the active style. Pair ''box''
      with auto_format: false — bsplot''s format_fig otherwise detaches and trims
      spines (the open ''nature'' look).'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
  layout_engine:
    name: layout_engine
    description: Which layout engine positions the panels. Unset lets the backend
      pick; name one to stop a dense mosaic being laid out by whatever the engine
      falls back to when its solver gives up, and 'none' to keep the gridspec's own
      positions when panels place their content at absolute geometry.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: LayoutEngine
  spine_offset:
    name: spine_offset
    description: How far the left and bottom spines sit outside the data area, in
      axes fractions. 0 makes them meet at the corner; the default detaches them slightly
      (bsplot's house look). Journals differ on this, so a replication states which
      one the paper uses.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: float
  workflow_overrides:
    name: workflow_overrides
    description: Per-figure HPC/workflow resource refinement (reuses WorkflowConfig,
      same pattern as SimulationExperiment.workflow_overrides); lets a heavy render
      request its own resources when figures are emitted as workflow jobs. The figure's
      Layer.used edges become the render rule's input dependencies.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: WorkflowConfig
    inlined: true
  code_modules:
    name: code_modules
    description: Importable module names whose import registers this figure's custom
      panels / transforms (via bsplot.register_panel / register_transform). The emitted
      plot.py imports them, so a study ships its bespoke figure code in its code_source
      instead of in core tvbo. The modules must be importable when the figure renders
      (loading the study puts its code/ dir on the path).
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
    multivalued: true
  share_x:
    name: share_x
    description: 'Panel groups that share one x scale, each entry a comma-separated
      list of mosaic keys (''c,g,h''). Every panel in a group ends on the union of
      the group''s limits. Declare it whenever a panel''s tick labels are hidden as
      another panel''s: hiding them alone asserts a shared scale the axes do not actually
      have, and a reader then compares two panels drawn at different ranges.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
    multivalued: true
  share_y:
    name: share_y
    description: Panel groups that share one y scale, each entry a comma-separated
      list of mosaic keys ('c,g,h'). Same rule as share_x.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: string
    multivalued: true
  animation:
    name: animation
    description: Turns the figure into a movie over one dimension of its data instead
      of a still. Every other field keeps its meaning — the mosaic, the panels, the
      sizing and the styling are the frame; the animation only says which dimension
      advances and how fast. Declaring it is what makes a figure whose subject is
      a *process* show the process rather than a snapshot of it, without a second,
      hand-written plotting path.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: Animation
    inlined: true
  panels:
    name: panels
    description: Panels keyed by their mosaic label.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    domain_of:
    - Figure
    range: Panel
    multivalued: true
    inlined: true
class_uri: schema:ImageObject

Induced

name: Figure
description: A publication figure, a mosaic of panels rendered from result containers.
  Reuses name (identifier) and description (caption).
from_schema: https://w3id.org/tvbo/figure
attributes:
  layout:
    name: layout
    description: bsplot mosaic string; letters = panel keys, slash (or newline) =
      new row, repeated letters span cells, dot = empty. e.g. aab/ccb.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
  theme:
    name: theme
    description: 'The look this figure declares: its colours and the geometry a style
      sheet used to own. Whatever it states beats every layer in `style`, always —
      declared beats layered, so a figure''s look can be read off its own spec instead
      of reconstructed from the sheets underneath it. Start from the curated one with
      `theme: {iri: tvbo:theme/default}` and state only the differences.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: Theme
    inlined: true
  style:
    name: style
    description: 'Style layers underneath the theme, applied left to right: a registered
      bsplot style name (`tvbo`, `nature`) or a path to an .mplstyle. This is where
      a look TVB-O has no field for goes — another project''s house style, a journal''s
      sheet, the rcParams of a paper being reproduced. Anything `theme` states wins
      over all of it. The name ''tvbo-palette'' is an alias for `theme: {iri: tvbo:theme/default}`,
      kept because it reads well in a list.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - Layer
    range: string
    multivalued: true
  format:
    name: format
    description: Output format (pdf/svg/png). Unset defers to the renderer default.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - Animation
    - RenderSpec
    - Matrix
    - Edge
    - DataSource
    - ResultBinding
    - ArchiveConfig
    range: string
  reference_image:
    name: reference_image
    description: The published figure this one reproduces, as a path relative to the
      study root (e.g. original_study/img/fig_04.png). Names the A/B target for `tvbo
      figure compare`, which measures panel geometry against it; it is never a data
      source, and never rendered into a panel.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
  label:
    name: label
    description: The heading this figure carries in a report. Unset, a report reads
      the paper's own number out of the name (Fig4, EDF10). A replication that answers
      a question the paper left open produces figures with no published counterpart,
      and those need a title of their own rather than a number that would read as
      the paper's.
    from_schema: https://w3id.org/tvbo/figure
    owner: Figure
    domain_of:
    - ParcellationTerminology
    - Subject
    - Session
    - Dataset
    - Contact
    - SoftwareEnvironment
    - Figure
    - Panel
    - Inset
    - Layer
    - Colorbar
    - Rule
    - Equation
    - Stimulus
    - Event
    - Parcellation
    - Tractogram
    - Matrix
    - Phenotype
    - Network
    - Node
    - Edge
    - Observation
    - Dynamics
    - StateVariable
    - Parameter
    - Function
    - FunctionCall
    - DerivedVariable
    - RandomStream
    - DataSource
    - OptimizationStage
    - Exploration
    - ExplorationAxis
    - FreeParameter
    - Inference
    - AlgorithmStage
    - TuningObjective
    - Continuation
    - Coupling
    - RegionMapping
    - SimulationExperiment
    - SimulationStudy
    - TimeSeries
    - NDArray
    - SpatialDomain
    - Mesh
    - SpatialField
    - FieldStateVariable
    - DifferentialOperator
    - BoundaryCondition
    - PDESolver
    - PDE
    range: string
  width:
    name: width
    description: Figure width in mm (physical print size). Font size is in points
      and independent of this, so a smaller figure makes text relatively larger.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - Colorbar
    - Rule
    - RenderSpec
    range: float
  height:
    name: height
    description: Figure height in mm (physical print size).
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - RenderSpec
    range: float
  dpi:
    name: dpi
    description: Raster resolution (dots per inch); scales pixel output only, not
      the physical size or the font size.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: integer
  trim_margins:
    name: trim_margins
    description: Trim surrounding whitespace from the saved figure (default true).
      Trimming re-crops to the drawn content, so the saved aspect can differ from
      width/height; set false to preserve the declared width×height proportions exactly,
      e.g. to match an original figure. Renders as bbox_inches='tight' on a matplotlib
      backend.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: boolean
  pad:
    name: pad
    description: Whitespace left around the content when trimming, in inches. Defaults
      to the backend's own margin (0.1 in for matplotlib), which is visible padding
      at journal column widths; 0 crops flush to the drawn content. Ignored when trim_margins
      is false, where the declared canvas fixes the margins instead.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - Colorbar
    range: float
  font_size:
    name: font_size
    description: 'Base font size in points (physical: 1 pt = 1/72 inch). The real
      text size, unchanged by figure size or dpi; set it (or the width) so labels
      are legible at print size.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
  auto_format:
    name: auto_format
    description: Apply bsplot's format_fig (tick/label normalisation + panel numbers).
      Set false to keep full manual control, e.g. when a study's own .mplstyle already
      defines the look.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: boolean
  panel_numbers:
    name: panel_numbers
    description: Draw automatic panel letters (a, b, ...). Independent of auto_format
      so a study can keep its own tick styling and still get numbered panels.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: boolean
  panel_number_format:
    name: panel_number_format
    description: 'Python format string applied to each panel letter: ''{}'' -> ''a'',
      ''({})'' -> ''(a)'', ''{}.'' -> ''a.''. Defaults to ''{}''. Match the target
      journal''s convention.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
  panel_number_loc:
    name: panel_number_loc
    description: Which corner the panel letter sits in. Unset keeps bsplot's own default
      placement; many journals (and Taher Fig 5) use 'upper right'.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: Corner
  panel_number_offset:
    name: panel_number_offset
    description: '[dx, dy] shift of every panel letter from its corner, in axes fractions.
      The default sits it on the axes corner, where a top y-tick label can reach it;
      a small negative dx clears the tick labels.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
    multivalued: true
  panel_number_size:
    name: panel_number_size
    description: Panel-letter size in points. Unset scales it above the body font_size,
      the convention most journals follow — a letter set at the body size reads as
      a tick label rather than as the panel's name.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
  height_ratios:
    name: height_ratios
    description: Relative heights of the mosaic rows, e.g. [1.15, 1, 1, 1] to make
      the top panel taller. Length = number of rows.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
    multivalued: true
  width_ratios:
    name: width_ratios
    description: Relative widths of the mosaic columns.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
    multivalued: true
  spines:
    name: spines
    description: 'Axes spine style: ''box'' (all 4 spines, closed boxes — e.g. Taher)
      or ''open'' (left+bottom only). Unset defers to the active style. Pair ''box''
      with auto_format: false — bsplot''s format_fig otherwise detaches and trims
      spines (the open ''nature'' look).'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
  layout_engine:
    name: layout_engine
    description: Which layout engine positions the panels. Unset lets the backend
      pick; name one to stop a dense mosaic being laid out by whatever the engine
      falls back to when its solver gives up, and 'none' to keep the gridspec's own
      positions when panels place their content at absolute geometry.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: LayoutEngine
  spine_offset:
    name: spine_offset
    description: How far the left and bottom spines sit outside the data area, in
      axes fractions. 0 makes them meet at the corner; the default detaches them slightly
      (bsplot's house look). Journals differ on this, so a replication states which
      one the paper uses.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: float
  workflow_overrides:
    name: workflow_overrides
    description: Per-figure HPC/workflow resource refinement (reuses WorkflowConfig,
      same pattern as SimulationExperiment.workflow_overrides); lets a heavy render
      request its own resources when figures are emitted as workflow jobs. The figure's
      Layer.used edges become the render rule's input dependencies.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: WorkflowConfig
    inlined: true
  code_modules:
    name: code_modules
    description: Importable module names whose import registers this figure's custom
      panels / transforms (via bsplot.register_panel / register_transform). The emitted
      plot.py imports them, so a study ships its bespoke figure code in its code_source
      instead of in core tvbo. The modules must be importable when the figure renders
      (loading the study puts its code/ dir on the path).
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
    multivalued: true
  share_x:
    name: share_x
    description: 'Panel groups that share one x scale, each entry a comma-separated
      list of mosaic keys (''c,g,h''). Every panel in a group ends on the union of
      the group''s limits. Declare it whenever a panel''s tick labels are hidden as
      another panel''s: hiding them alone asserts a shared scale the axes do not actually
      have, and a reader then compares two panels drawn at different ranges.'
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
    multivalued: true
  share_y:
    name: share_y
    description: Panel groups that share one y scale, each entry a comma-separated
      list of mosaic keys ('c,g,h'). Same rule as share_x.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: string
    multivalued: true
  animation:
    name: animation
    description: Turns the figure into a movie over one dimension of its data instead
      of a still. Every other field keeps its meaning — the mosaic, the panels, the
      sizing and the styling are the frame; the animation only says which dimension
      advances and how fast. Declaring it is what makes a figure whose subject is
      a *process* show the process rather than a snapshot of it, without a second,
      hand-written plotting path.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: Animation
    inlined: true
  panels:
    name: panels
    description: Panels keyed by their mosaic label.
    from_schema: https://w3id.org/tvbo/figure
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    range: Panel
    multivalued: true
    inlined: true
  name:
    name: name
    description: Globally unique identifier for the entity.
    from_schema: https://w3id.org/tvbo/common
    slot_uri: schema:name
    identifier: true
    owner: Figure
    domain_of:
    - BrainAtlas
    - CommonCoordinateSpace
    - ParcellationEntity
    - StudyLayout
    - StudyTemplate
    - StudyDirectory
    - StudyFile
    - DBSProtocol
    - ClinicalScale
    - ClinicalScore
    - SoftwarePackage
    - SoftwareRequirement
    - SoftwareEnvironment
    - Figure
    - Event
    - Tractogram
    - ResultEntity
    - Activity
    - CachedArray
    - MeasureSpec
    - NamedArray
    - GraphGenerator
    - Binding
    - ProcedureStep
    - File
    - StateValue
    - Observation
    - Dynamics
    - StateVariable
    - Distribution
    - Parameter
    - CouplingInput
    - Argument
    - Function
    - FunctionCall
    - Callable
    - DerivedParameter
    - DerivedVariable
    - DataSource
    - OptimizationStage
    - Exploration
    - Inference
    - Prior
    - Likelihood
    - UpdateRule
    - Algorithm
    - Option
    - BranchSwitch
    - Continuation
    - Coupling
    - EnvironmentVariable
    - SchedulerDirective
    - Reducer
    range: string
    required: true
  description:
    name: description
    from_schema: https://w3id.org/tvbo
    rank: 1000
    slot_uri: dcterms:description
    owner: Figure
    domain_of:
    - CommonCoordinateSpace
    - Dataset
    - StudyLayout
    - StudyTemplate
    - StudyDirectory
    - StudyFile
    - ClinicalScore
    - SoftwarePackage
    - SoftwareRequirement
    - SoftwareEnvironment
    - Figure
    - Panel
    - Equation
    - Stimulus
    - Event
    - Tractogram
    - Matrix
    - ResultEntity
    - Activity
    - Phenotype
    - MeasureSpec
    - NamedArray
    - Network
    - GraphGenerator
    - ProcedureStep
    - File
    - Node
    - Edge
    - Observation
    - Dynamics
    - StateVariable
    - Parameter
    - CouplingInput
    - Argument
    - Function
    - FunctionCall
    - Callable
    - DerivedParameter
    - DerivedVariable
    - RandomStream
    - DataSource
    - OptimizationStage
    - Exploration
    - ExplorationAxis
    - FreeParameter
    - Inference
    - Prior
    - Likelihood
    - UpdateRule
    - AlgorithmStage
    - TuningObjective
    - Algorithm
    - BranchSwitch
    - Continuation
    - Integrator
    - Coupling
    - RegionMapping
    - SimulationExperiment
    - Study
    - ResultBinding
    - TimeSeries
    - NDArray
    - SpatialDomain
    - Mesh
    - SpatialField
    - FieldStateVariable
    - BoundaryCondition
    - PDESolver
    - PDE
    - Reducer
    range: string
  provenance:
    name: provenance
    description: W3C PROV-O aligned provenance for this entity — what it was derived
      from, which agent produced it, and when.
    from_schema: https://w3id.org/tvbo
    close_mappings:
    - prov:wasGeneratedBy
    rank: 1000
    owner: Figure
    domain_of:
    - Figure
    - ResultEntity
    - ExperimentResultSidecar
    - Phenotype
    - Network
    - SimulationExperiment
    range: Provenance
    inlined: true
  part:
    name: part
    description: 'Which part of a generated report this belongs in — the main Methods
      or the supplementary material. Placement only: every experiment runs and every
      figure renders regardless, so demoting one never changes what is computed. It
      answers a different question from a replication''s target tier (how central
      a claim is) and from the source paper''s own Fig/EDF numbering (where *they*
      printed it), because our document may carry a headline result''s parameter dump
      in the SI, or relegate a figure the paper printed up front. Defaults to ``main``,
      so a recipe that says nothing keeps everything in the Methods.'
    from_schema: https://w3id.org/tvbo/common
    ifabsent: ReportPart(main)
    owner: Figure
    domain_of:
    - Figure
    - SimulationExperiment
    range: ReportPart
class_uri: schema:ImageObject