[Matplotlib-users] Different colors between imshow and patches

David Bourgeois david at jaguarondi.com
Wed Jan 13 06:03:06 EST 2016


In Matplotlib, images and patches are shown on screen with different color
rendering, at least with my setup. The following script displays an image
of a grayscale (np.array) overlaid at the center with the same grayscale
generated from matplotlib.patches.

There is a difference of gamma between the image and the patches on what's
displayed on screen but if I save this figure, then the resulting file is
correct. Checking with some graphic software, the patches are displaying
the correct color, not the image.

Snapshot:
http://i.stack.imgur.com/mv8aU.jpg

Saving the figure from the figure window 'save' button gives this:
http://i.stack.imgur.com/fVNnh.png

Is there anything I'm missing in this code?

    import numpy as np
    import matplotlib.pyplot as plt
    from matplotlib.patches import Rectangle

    color = np.zeros(3)

    f, ax = plt.subplots()
    im = np.zeros((1000, 1100,3))
    for i in range(11):
        im[:,i*100:(i+1)*100,:] = np.tile(np.array([[color]]), (1000, 100,
1))
        ax.add_patch(Rectangle((i*100,300), 100, 400, linewidth=0,
facecolor=color))
        color = color + 0.1
    plt.imshow(im)
    plt.show()

I'm on OSX, so I also checked the color management and by changing the
color profile of my display, both image and patches are affected so I guess
color management is not where the problem lies.

Thank you,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20160113/df6f58c8/attachment.html>


More information about the Matplotlib-users mailing list