Ultraplot ignores the vmin/vmax values, if the levels are explicitly set in contour plots.
This is documented behaviour.
However, I can't see the reason why this is the case?
Matplotlib is not ignoring vmin/vmax in contour plots, if they are explicitly set.
Only, if they are not given, the color boundaries are derived from the levels list.
frommatplotlib.colorsimportNormalizeimportmatplotlibasmplimportmatplotlib.pyplotaspltimportnumpyasnpimportultraplotasupltfig, ax=uplt.subplots()
x=np.linspace(-1,1,100)
y=np.linspace(-1,1,100)
X,Y=np.meshgrid(x,y)
Z=np.exp(-(X**2+Y**2))
im=ax.pcolormesh(X,Y,Z, cmap='turbo', alpha=0.6)
cs=ax.contour(X,Y,Z, levels=[0.3, 0.6, 0.9], cmap='turbo', vmin=0, vmax=1) # vmin/max are ignored here
Ultraplot ignores the vmin/vmax values, if the levels are explicitly set in contour plots.
This is documented behaviour.
However, I can't see the reason why this is the case?
Matplotlib is not ignoring vmin/vmax in contour plots, if they are explicitly set.
Only, if they are not given, the color boundaries are derived from the levels list.