Elementos auxiliares (Retângulo)
O patch disponível para inserir um retângulo é o Rectangle. Este elemento requer pelo menos três parâmetros:
-
xy: umatuplecom as coordenadas (intoufloat) dexeyonde o retângulo irá iniciar; -
width: um número (intoufloat) com a espessura desejada para o retângulo (posição final no eixox); -
height: um número (intoufloat) com a altura desejada para o retângulo (posição final no eixoy);
Por exemplo, para inserir um retângulo iniciando em x = 1.5 e y = 1.5, com width = 2 e height = 1:
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Rectangle(xy=(1.5, 1.5), width=2, height=1))
plt.show()
Figura 1 - Gráfico de dispersão com um retângulo inserido.

Também é possível rotacionar o retângulo em torno do ponto inicial (xy), o que é feito passando o ângulo desejado (int ou float) para o parâmetro angle (padrão é 0). Por exemplo, para rotacionar o retângulo em 45°, basta passar angle = 45:
plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Rectangle(xy=(1.5, 1.5), width=2, height=1, angle=45))
plt.show()
Figura 2 - Gráfico de dispersão com um retângulo rotacionado em 45°.

Observe que a origem do Rectangle se manteve inalterada (xy=(1.5, 1.5)), e agora a linha da base do Rectangle está inclinada em 45°.
Edições
O patches.Rectangle aceita uma série de parâmetros para a sua edição, sendo possível alterar a cor de preenchimento (color ou facecolor), remover o preenchimento (fill), inserir linhas (linestyle, linewidth, edgecolor), inserir estilos de preenchimento (hatch), adicionar transparência (alpha), determinar a ordem de plotagem (zorder), inserir nome para legenda (label), entre outros, de forma similar ao que temos visto.
Você encontra maiores detalhes na documentação.