Skip to content

Interoperability

ResearchPlot owns compliance evidence and artifact preflight, not plotting syntax. Any tool that writes a supported PDF, SVG, EPS, PNG, JPEG, or TIFF can participate in the file and bundle phases.

Plain Matplotlib

figure = project.figure("figure-1")

with figure.style(deliverable="main") as style:
    fig, ax = style.subplots(aspect=0.62)
    ax.plot(x, y, marker="o")
    report = figure.check(fig=fig)

This preserves live artist evidence and sets exact physical width through a reversible matplotlib.rc_context.

Seaborn and pandas

Seaborn and pandas draw into Matplotlib figures, so pass the project axes explicitly:

import seaborn as sns

with project.figure("figure-1").style(deliverable="main") as style:
    fig, ax = style.subplots()
    sns.lineplot(data=data, x="time", y="response", ax=ax)
    report = project.figure("figure-1").check(fig=fig)

Seaborn and pandas are not base dependencies. Install them directly for native use or install [plots] only for the deprecated ResearchPlot wrappers.

SciencePlots, TUEPlots, and PlotStyle

Apply third-party rcParams inside or before the ResearchPlot style context, then validate the resulting live figure. ResearchPlot's explicit user overrides take precedence over profile defaults but remain subject to venue checks.

with project.figure("figure-1").style(
    overrides={"axes.grid": True},
) as style:
    fig, ax = style.subplots()

A style package can improve appearance without proving venue compliance. Keep the report as the evidence boundary.

R, Julia, Plotly, browser tools, and design applications

Export the final artifact from the authoring tool, then audit it:

researchplot audit figure.pdf \
  --profile nature@2026.08.0 \
  --width single \
  --role main \
  --content line-art

File-only checks may be indeterminate when a requirement needs live or author evidence. Add the artifact to schema-v3 configuration with caption, alt text, long description, source data, panels, and attestations, then run a project check.

ResearchPlot does not rewrite arbitrary saved artifacts. Its remediation plan separates measured problems that need re-export or author review; it never claims an existing raster can be losslessly resized, recolored, or restyled.

CI and external tooling

Use JSON for full evidence and SARIF for code-scanning annotations:

researchplot check --config researchplot.toml --frozen \
  --format json --output build/researchplot.json

researchplot check --config researchplot.toml --frozen \
  --format sarif --output build/researchplot.sarif

Preserve the native JSON report because SARIF severity alone cannot distinguish all coverage and verdict semantics.

Publication metadata

A verified submission manifest can be projected into JATS 1.4 figure markup and RO-Crate 1.3 JSON-LD:

researchplot bundle jats dist/submission --output dist/figures.xml
researchplot bundle ro-crate dist/submission \
  --output dist/ro-crate-metadata.json

These converters use only supplied manifest metadata. They do not invent descriptions, scientific relationships, or author identities.

Capability boundary

Evidence Matplotlib Seaborn/pandas R/Julia/Plotly Design tool
Exact ResearchPlot style context Yes Yes, via Matplotlib axes No No
Live artist inspection Yes Yes No native adapter No native adapter
Saved-file audit Yes Yes Yes Yes
Project metadata/coverage Yes Yes Yes Yes
Bundle/hash verification Yes Yes Yes Yes

This matrix describes technical capability, not a comparative quality claim about any plotting library.