Skip to main content

ResearchPlot

ResearchPlot creates Matplotlib figures at verified publication widths, explains where each venue rule came from, validates live figures, and audits exported files. It is a compliance assistant—not a guarantee that a publisher will accept a figure.

PyPI CI

Installation

python -m pip install researchplot-venues

The PyPI distribution is named researchplot-venues; the Python package and CLI remain researchplot, so existing imports and commands do not change.

The core requires Python 3.10+ and does not require LaTeX or network access. Install the deprecated high-level plotting helpers separately:

python -m pip install "researchplot-venues[plots]"

Venue-native workflow

import matplotlib.pyplot as plt
import researchplot as rp

x = [0, 1, 2, 3]
y = [0, 1, 4, 9]

with rp.use("CVPR 2026", width="single") as style:
    fig, ax = style.subplots()
    ax.plot(x, y, marker="o")
    ax.set(xlabel="Input", ylabel="Output")

    report = style.validate(fig)
    print(report)
    paths = style.export(fig, "figure1", artwork="vector")

plt.close(fig)

Exact IDs are reproducible. A bare conference name such as cvpr resolves to the newest bundled verified year and warns with the resolved ID. Unknown and ambiguous names raise an error with suggestions; they never silently become IEEE.

profile = rp.resolve_venue("Nature")
print(profile.width_options)  # ('single', 'double')
print(profile.width_mm("single"))  # 89.0
print(profile.sources)  # official guidance and verification dates

Verified catalog

Profile Final widths Scope
ieee-journal 88.9 / 181.864 mm General IEEE journal artwork
nature 89 / 183 mm Flagship Nature journal
elsevier-generic 30 / 90 / 140 / 190 mm Generic Elsevier artwork
neurips-2026 139.7 mm NeurIPS 2026 template
icml-2026 82.55 / 171.45 mm ICML 2026 instructions
cvpr-2026 83.34375 / 174.625 mm CVPR 2026 author kit
acl-2026 77 / 160 mm ACL 2026 formatting rules

Every bundled rule is required, recommended, or inferred. Missing official guidance stays unspecified. Profiles include official URLs, verification dates, scope, and caveats; all runtime resolution is offline.

Validation and file auditing

report = rp.validate_figure(fig, venue="nature", width="single")
if not report.passed:
    for failure in report.failures:
        print(failure.message, failure.source_urls)

report = rp.audit_file(
    "figure1.pdf",
    venue="nature",
    width="single",
    artwork="vector",
)
print(report.to_dict())

Required violations fail; recommendations warn; inferred guidance is informational. Anything the validator cannot establish is marked skip, not passed. Strict export blocks only required failures.

The auditor supports PDF, SVG, PNG, JPEG, TIFF, and EPS. It checks applicable file format, physical dimensions, raster DPI and color mode metadata, PDF font embedding and Type 3 fonts, SVG dimensions/text presence, and EPS bounding boxes.

Command line

researchplot venues list
researchplot venues search cvpr
researchplot venues info cvpr-2026
researchplot doctor --venue nature
researchplot audit figure.pdf --venue nature --width single --artwork vector
researchplot audit figure.pdf --venue nature --width single --artwork vector --json

Exit code 0 means no required failures, 1 means compliance failures, and 2 means invalid input, an unreadable file, or a missing required capability.

Legacy plotting helpers

The original positional interfaces remain available in 0.2.x and display by default, but emit a deprecation warning. They now return (Figure, Axes) (or a Seaborn PairGrid) and accept keyword-only ax=None and show=True.

from researchplot import bar, pairplot, stacked_bar

fig, ax = bar([3, 5, 2], ["A", "B", "C"], show=False)

Supported helpers: bar, stacked_bar, scatter, line, histogram, boxplot, heatmap, confusion_matrix, accuracy_vs_epoch, loss_vs_epoch, roc_curve, precision_recall_curve, violinplot, contour_plot, pie, hexbin, pairplot, learning_curves, time_series, radar_chart, dendrogram, quiver, surface_3d, sankey, and error_band.

science, cell, springer, and pnas remain unverified legacy styles only. The generic elsevier alias also warns that a target journal can override its rules. See the migration guide for native replacements.

Limitations

  • Official venue instructions can change and journal-specific rules can override a publisher profile. Always follow the linked official sources and profile caveats.
  • Source date and file metadata cannot prove every visual property; unresolved checks remain visible as skipped checks.
  • LaTeX is external and opt-in (rp.use(..., latex=True)). ResearchPlot never downloads fonts or templates.
  • Automatic template ingestion, online profile updates, other plotting backends, and broader venue coverage are post-0.2 roadmap work.

Documentation lives in docs/. Contributions that add a profile must include traceable official sources and tests. ResearchPlot is MIT licensed.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

researchplot_venues-0.2.0.tar.gz (41.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

researchplot_venues-0.2.0-py3-none-any.whl (41.3 kB view details)

Uploaded Python 3

File details

Details for the file researchplot_venues-0.2.0.tar.gz.

File metadata

  • Download URL: researchplot_venues-0.2.0.tar.gz
  • Upload date:
  • Size: 41.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for researchplot_venues-0.2.0.tar.gz
Algorithm Hash digest
SHA256 4de99b05d88789fbf08833a64b5d4597e18a55279446f1a1f4043e5fc5ccc546
MD5 c76f4beaf56e841fcb2de334ecac8b4a
BLAKE2b-256 33e01cd92cb4134f2c4f30903ce90d32863dcbff887ab620e9b37fcf58491ec4

See more details on using hashes here.

Provenance

The following attestation bundles were made for researchplot_venues-0.2.0.tar.gz:

Publisher: release.yml on Devrajsinh-Jhala/ResearchPlot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file researchplot_venues-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for researchplot_venues-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d23a59be3192adf68d06cec43729c65fc81c35cd0dced494a32c4fb392a11824
MD5 b8c50af8f7fdf64ae113aff1660996d3
BLAKE2b-256 7116fde98b3d9aeabbca95c5f02b8389eaa1a6f8b2cfc04733f141edff31bf36

See more details on using hashes here.

Provenance

The following attestation bundles were made for researchplot_venues-0.2.0-py3-none-any.whl:

Publisher: release.yml on Devrajsinh-Jhala/ResearchPlot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.0.0

2 files

1.0.0

2 files

0.2.1

2 files

This release

0.2.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page