• Stars
    star
    216
  • Rank 183,179 (Top 4 %)
  • Language
    Python
  • License
    Other
  • Created over 9 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A pytest plugin to facilitate image comparison for Matplotlib figures

pytest-mpl

pytest-mpl is a pytest plugin to facilitate image comparison for Matplotlib figures.

For each figure to test, an image is generated and then subtracted from an existing reference image. If the RMS of the residual is larger than a user-specified tolerance, the test will fail. Alternatively, the generated image can be hashed and compared to an expected value.

For more information, see the pytest-mpl documentation.

Installation

pip install pytest-mpl

For detailed instructions, see the installation guide in the pytest-mpl docs.

Usage

First, write test functions that create a figure. These image comparison tests are decorated with @pytest.mark.mpl_image_compare and return the figure for testing:

import matplotlib.pyplot as plt
import pytest

@pytest.mark.mpl_image_compare
def test_plot():
    fig, ax = plt.subplots()
    ax.plot([1, 2])
    return fig

Then, generate reference images by running the test suite with the --mpl-generate-path option:

pytest --mpl-generate-path=baseline

Then, run the test suite as usual, but pass --mpl to compare the returned figures to the reference images:

pytest --mpl

By also passing --mpl-generate-summary=html, a summary of the image comparison results will be generated in HTML format:

html all html filter html result

For more information on how to configure and use pytest-mpl, see the pytest-mpl documentation.

Contributing

pytest-mpl is a community project maintained for and by its users. There are many ways you can help!

  • Report a bug or request a feature on GitHub
  • Improve the documentation or code

More Repositories

1

matplotlib

matplotlib: plotting with Python
Python
20,025
star
2

cheatsheets

Official Matplotlib cheat sheets
Python
7,349
star
3

mplfinance

Financial Markets Data Visualization using Matplotlib
Python
3,552
star
4

ipympl

Matplotlib Jupyter Integration
TypeScript
1,554
star
5

AnatomyOfMatplotlib

Anatomy of Matplotlib -- tutorial developed for the SciPy conference
Jupyter Notebook
1,210
star
6

basemap

Plot on map projections (with coastlines and political boundaries) using matplotlib
Python
779
star
7

mpl-finance

This package is DEPRECATED, replaced by https://github.com/matplotlib/mplfinance
Python
309
star
8

cmocean

Colormap setup for standardizing commonly-plotting oceanographic variables.
Python
230
star
9

viscm

A tool for visualizing and designing colormaps using colorspacious and matplotlib
Python
165
star
10

trendvis

Python
114
star
11

mplcairo

A (new) cairo backend for Matplotlib.
C++
106
star
12

cycler

cycler: composable cycles
Python
72
star
13

mpl-third-party

Third-party Packages Webpage
Python
50
star
14

grid-strategy

Library to facilitate the arrangement of matplotlib subplots based on the number of plots
Python
41
star
15

sampledoc

CSS
41
star
16

napari-matplotlib

Linking napari layers with Matplotlib plots
Python
37
star
17

mpl-probscale

Real probability scales for matplotlib
Python
36
star
18

GettingStarted

Scipy 2019 Tutorial
Jupyter Notebook
35
star
19

matplotblog

Matplotlib blog
Jupyter Notebook
35
star
20

interactive_tutorial

Interactive Matplotlib tutorial
Python
29
star
21

matplotlib-extension-cookiecutter

A fairly opinionated cookiecutter for making a Matplotlib extension
Python
29
star
22

matplotlib.github.com

HTML
24
star
23

sample_data

Python
19
star
24

matplotview

A library for creating lightweight views of matplotlib axes.
Python
17
star
25

natgrid

C
15
star
26

mpl-altair

Matplotlib Backend for Altair Visualization Library
Python
14
star
27

mpl-gui

Prototype for mpl-gui module
Python
13
star
28

legacycontour

package for providing legacy support for contour/contourf
Python
8
star
29

mpl-brochure-binder

Notebooks for a brochure binder.
Jupyter Notebook
6
star
30

data-prototype

Python
4
star
31

CZI_2019-07_mpl

TeX
4
star
32

mpl-sphinx-theme

A thin sphinx theme to customize pydata-sphinx-theme consistently cross Matplotlib projects.
HTML
4
star
33

freetypy

Fast and modern Python wrappers for freetype, written in Python/C API
Python
4
star
34

presentations

Matplotlib talks and tutorials
Jupyter Notebook
3
star
35

mpl-docker

MPL Docker image for building docs
Dockerfile
3
star
36

mpl-brochure-site

Source for the top-level landing page.
3
star
37

devdocs

Repository for snapshots of the documentation built from the current master branch. Updated by travis
HTML
3
star
38

matplotlib-cmap-template

Template package for distributing Matplotlib colormaps.
Python
3
star
39

2020-NASA-ROSES-E7

Grant proposal responding to the 2020 NASA ROSES E7 solicitation.
TeX
3
star
40

ProjectManagement

Meeting notes and other management documentation for Matplotlib
2
star
41

governance

The governance process and model for matplotlib
Python
2
star
42

CZI_2021-03_mpl

Application for CZI EOSS round 4.
TeX
1
star
43

2024-NASA-ROSES-F7

Grant proposal responding to the 2024 NASA ROSES F7 solicitation.
TeX
1
star