Open
Description
Bug summary
Using a combination of the following:
- pcolormesh with a set alpha parameter
- a colormap that uses the alpha channel for color mapping
results in the colormap using the alpha parameter from pcolormesh as a constant.
Expected result would be that all resulting values from the colormapping are additionally blended with the alpha parameter from pcolormesh.
Code for reproduction
import matplotlib.pyplot as plt
import matplotlib.colors
cdict ={'red':[(0.0, None, 1.0),
(1.0, 1.0, None)],
'green': [(0.0, None, 0.0),
(1.0, 0.0, None)],
'blue': [(0.0, None, 0.0),
(1.0, 0.0, None)],
'alpha': [(0.0, None, 0.0),
(1.0, 1.0, None)]}
cmap = matplotlib.colors.LinearSegmentedColormap('custom',cdict,256)
H = [[1,2,3]]
yedges = [0,1]
xedges = [0,1,2,3]
f, (ax1, ax2) = plt.subplots(2, 1)
# case 1: no alpha, colormap defines alpha of values
ax1.pcolormesh(xedges, yedges, H, cmap=cmap)
ax1.set_title("pcolormesh without alpha parameter")
# case 2: with alpha, alpha is passed to colormap and every value has the same alpha
ax2.pcolormesh(xedges, yedges, H, cmap=cmap, alpha=0.5)
ax2.set_title("pcolormesh with alpha parameter 0.5")
plt.show()
Actual outcome

Expected outcome

The expected outcome is, that the "normal" output of pcolormesh is additionally alpha blended.
Additional information
This happens when an alpha parameter is passed to pcolormesh.
I suspect that the alpha parameter is passed to the colormap call, which effectively sets the colormap result alpha value to a constant.
Operating system
MacOS
Matplotlib Version
3.10.1
Matplotlib Backend
macosx
Python version
Python 3.13.1
Jupyter version
No response
Installation
pip