I would like to add a rectangle over a graph. Through all the documentation I\'ve found, the rectangle should be opaque by default, with transparency controlled by an alpha
Your choice of facecolor (CornflowerBlue) has an appearance of being semi-opaque, but in reality the color you are seeing is correct for alpha = 1. Try a different color like 'blue' instead. Matplotlib does appear to be placing the rectangular patch below the line, but I don't think that's a transparency issue.