• Stars
    star
    216
  • Rank 177,135 (Top 4 %)
  • Language
    Python
  • License
    Other
  • Created almost 9 years ago
  • Updated 5 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
19,149
star
2

cheatsheets

Official Matplotlib cheat sheets
Python
7,248
star
3

mplfinance

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

ipympl

Matplotlib Jupyter Integration
TypeScript
1,502
star
5

AnatomyOfMatplotlib

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

basemap

Plot on map projections (with coastlines and political boundaries) using matplotlib
Python
763
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
221
star
9

viscm

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

trendvis

Python
114
star
11

mplcairo

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

cycler

cycler: composable cycles
Python
69
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
40
star
16

napari-matplotlib

Linking napari layers with Matplotlib plots
Python
38
star
17

matplotblog

Matplotlib blog
Jupyter Notebook
35
star
18

GettingStarted

Scipy 2019 Tutorial
Jupyter Notebook
34
star
19

mpl-probscale

Real probability scales for matplotlib
Python
33
star
20

interactive_tutorial

Interactive Matplotlib tutorial
Python
29
star
21

matplotlib.github.com

23
star
22

matplotlib-extension-cookiecutter

A fairly opinionated cookiecutter for making a Matplotlib extension
Python
21
star
23

sample_data

Python
19
star
24

natgrid

C
15
star
25

matplotview

A library for creating lightweight views of matplotlib axes.
Python
15
star
26

mpl-gui

Prototype for mpl-gui module
Python
13
star
27

mpl-altair

Matplotlib Backend for Altair Visualization Library
Python
12
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