diff --git a/lib/matplotlib/backends/backend_pdf.py b/lib/matplotlib/backends/backend_pdf.py index e14aadcb48bd..bf710705f202 100644 --- a/lib/matplotlib/backends/backend_pdf.py +++ b/lib/matplotlib/backends/backend_pdf.py @@ -1626,6 +1626,13 @@ def check_gc(self, gc, fillcolor=None): orig_alphas = getattr(gc, '_effective_alphas', (1.0, 1.0)) + if gc._rgb is None: + # it should not matter what color here + # since linewidth should be 0 + # unless affected by global settings in rcParams + # hence setting zero alpha just incase + gc._rgb = [0, 0, 0, 0] + if gc._forced_alpha: gc._effective_alphas = (gc._alpha, gc._alpha) elif fillcolor is None or len(fillcolor) < 4: diff --git a/lib/matplotlib/testing/compare.py b/lib/matplotlib/testing/compare.py index c3d649e38069..b6f508660fc9 100644 --- a/lib/matplotlib/testing/compare.py +++ b/lib/matplotlib/testing/compare.py @@ -355,8 +355,8 @@ def crop_to_same(actual_path, actual_image, expected_path, expected_image): # clip the images to the same size -- this is useful only when # comparing eps to pdf if actual_path[-7:-4] == 'eps' and expected_path[-7:-4] == 'pdf': - aw, ah = actual_image.shape - ew, eh = expected_image.shape + aw, ah, ad = actual_image.shape + ew, eh, ed = expected_image.shape actual_image = actual_image[int(aw / 2 - ew / 2):int( aw / 2 + ew / 2), int(ah / 2 - eh / 2):int(ah / 2 + eh / 2)] return actual_image, expected_image diff --git a/lib/matplotlib/tests/test_backend_pdf.py b/lib/matplotlib/tests/test_backend_pdf.py index 3529ea8541db..275748e2aec2 100644 --- a/lib/matplotlib/tests/test_backend_pdf.py +++ b/lib/matplotlib/tests/test_backend_pdf.py @@ -19,7 +19,9 @@ _determinism_check) from matplotlib.testing.decorators import image_comparison from matplotlib import dviread +from matplotlib.testing.compare import compare_images +import matplotlib as mpl needs_tex = pytest.mark.xfail( not checkdep_tex(), @@ -191,3 +193,18 @@ def psfont(*args, **kwargs): ax.text(0.5, 0.5, 'hello') with tempfile.TemporaryFile() as tmpfile, pytest.raises(ValueError): fig.savefig(tmpfile, format='pdf') + + +@pytest.fixture(scope='function') +def test_pdf_savefig_when_color_is_none(tempdir_factory): + rcParams['_internal.classic_mode'] = False + plt.subplot() + plt.axis('off') + plt.plot(np.sin(np.linspace(-5, 5, 100)), 'v', c='none') + tmpdir_name = str(np.random.randint(100000, 10000000)) + actual_image = tempdir_factory.mktemp(tmpdir_name).join('figure.pdf') + expected_image = tempdir_factory.mktemp(tmpdir_name).join('figure.eps') + plt.savefig(str(actual_image), format='pdf') + plt.savefig(str(expected_image), format='eps') + result = compare_images(str(actual_image), str(expected_image), 0) + assert result is None pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy