This was causing havoc in contourf; I don't see the logic of multiplying a
previous alpha by a new one.
Consider a following example that you want to have different alpha for
edgecolor and face color (of course this does not work as of now),
Circle((1, 1), 0.5, ec=(1, 1, 1, 0.2), fc=(1, 0, 0, 1), alpha=1)
If alpha always overrides, it will override both alpha values of the
edge color and facecolor, and we can't have different alphas for edge
And, in this case, I think the alphas should be multiplied.
Circle((1, 1), 0.5, ec=(1, 1, 1, 0.2), fc=(1, 0, 0, 1), alpha=0.5)
I think it is natural to expect that the resulting alpha of ec to be 0.2*0.5.
For the case of contourf, the problem in my point of view is not that
the alpha is not overridden, but that contourf applies the same alpha
Whether set_alpha() method override or not would be an implementation
detail, but I guess the above cases at least make some sense.