Elementos auxiliares (Polígonos)

2 minute read


O patch disponível para inserir polígonos é o Polygon. Este elemento requer apenas 1 parâmetro, que é o parâmetro xy, que recebe uma list de list, onde as lists internas devem conter as coordenadas xy para cada vértice do polígono (cada list interna deve conter dois elementos numéricos). O número de list internas irá determinar o número de vértices que o polígono terá.

Por exemplo, a list [[1,1]] irá desenhar apenas 1 vértice (apenas 1 ponto).

Já a list [[1,1], [2,2]] irá desenhar dois vértices ligados, o primeiro na coordenada xy=(1,1), e o segundo na coordenada xy=(2,2), formando uma reta.

Já a list [[1,1], [2,2], [3,1]] irá desenhar três vértices ligados, o primeiro na coordenada xy=(1,1), o segundo na coordenada xy=(2,2), e o terceiro na coordenada xy=(3,1), formando um triângulo.

Já a list [[1,1], [2,2], [3,1], [2, 0.7]] irá desenhar quatro vértices ligados, o primeiro na coordenada xy=(1,1), o segundo na coordenada xy=(2,2), o terceiro na coordenada xy=(3,1), e o quarto na coordenada xy=(2,0.7), formando uma figura geométrica de 4 lados.

Por exemplo, para desenhar um triângulo, é necessário passar três lists internas:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Polygon(xy=([[1,1], [2,2], [3,1]])))
plt.show()

Figura 1 - Gráfico de dispersão com um triângulo inserido.

gráfico de dispersão desenhado com matplotlib com um triângulo inserido


Para desenhar um polígono de 4 lados, é necessário passar 4 lists internas:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Polygon(xy=([[1,1], [2,2], [3,1], [2, 0.7]])))
plt.show()

Figura 2 - Gráfico de dispersão com um polígono inserido.

gráfico de dispersão desenhado com matplotlib com um polígono inserido


O patches.Polygon também aceita o parâmetro closed, que recebe um bool onde True (padrão) indica que o polígono será fechado, e False indica que o polígono será aberto. Para exemplificar o comportamento, vou inserir cor para as bordas do polígono, e remover o seu preenchimento:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Polygon(xy=([[1,1], [2,2], [3,1], [2, 0.7]]), edgecolor='k', fill=False))
plt.show()

Figura 3 - Gráfico de dispersão com um polígono inserido.

gráfico de dispersão desenhado com matplotlib com um polígono inserido


Observe que o polígono está fechado, ou seja, as arestas estão todas conectadas. Mas, caso passe o parâmetro closed = False, obtemos este outro comportamento:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Polygon(xy=([[1,1], [2,2], [3,1], [2, 0.7]]), edgecolor='k', fill=False, closed=False))
plt.show()

Figura 4 - Gráfico de dispersão com um polígono inserido.

gráfico de dispersão desenhado com matplotlib com um polígono inserido


De qualquer forma, todas as arestas não precisam estar conectadas para que o polígono seja preenchido:

plt.figure(figsize=(8,6))
plt.scatter(x,y)
plt.gca().add_patch(patches.Polygon(xy=([[1,1], [2,2], [3,1], [2, 0.7]]), edgecolor='k', fill=True, closed=False))
plt.show()

Figura 5 - Gráfico de dispersão com um polígono inserido.

gráfico de dispersão desenhado com matplotlib com um polígono inserido


Edições

O patches.Polygon 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 vimos anteriormente.

Você encontra maiores detalhes na documentação.


Quantos pontos são necessários para inserir um polígono de 8 lados?

7

8

9

6


Anterior Próximo

Updated: