Criando Formas com Python Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este tutorial foi projetado para guiar os usuários sobre como criar círculos, cunhas (wedges) e polígonos usando Python Matplotlib. Os usuários também poderão usar .collections.PatchCollection para visualizar as formas criadas.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido às limitações do Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar as bibliotecas necessárias

Primeiramente, precisamos importar as bibliotecas necessárias.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Circle, Polygon, Wedge

Criar uma figura e um eixo

Criamos uma figura e um eixo para plotar as formas.

fig, ax = plt.subplots()

Definir o número de vértices e o número de formas

Definimos o número de vértices e o número de formas a serem criadas.

resolution = 50  ## the number of vertices
N = 3

Criar círculos

Criamos círculos usando Circle() e os adicionamos a uma lista de patches.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
patches = []
for x1, y1, r in zip(x, y, radii):
    circle = Circle((x1, y1), r)
    patches.append(circle)

Criar setores (wedges)

Criamos setores (wedges) usando Wedge() e os adicionamos à lista de patches.

x = np.random.rand(N)
y = np.random.rand(N)
radii = 0.1*np.random.rand(N)
theta1 = 360.0*np.random.rand(N)
theta2 = 360.0*np.random.rand(N)
for x1, y1, r, t1, t2 in zip(x, y, radii, theta1, theta2):
    wedge = Wedge((x1, y1), r, t1, t2)
    patches.append(wedge)

Adicionar condições limitantes aos setores (wedges)

Adicionamos condições limitantes aos setores (wedges).

patches += [
    Wedge((.3, .7), .1, 0, 360),             ## Full circle
    Wedge((.7, .8), .2, 0, 360, width=0.05),  ## Full ring
    Wedge((.8, .3), .2, 0, 45),              ## Full sector
    Wedge((.8, .3), .2, 45, 90, width=0.10),  ## Ring sector
]

Criar polígonos

Criamos polígonos usando Polygon() e os adicionamos à lista de patches.

for i in range(N):
    polygon = Polygon(np.random.rand(N, 2), closed=True)
    patches.append(polygon)

Definir cores e criar PatchCollection

Definimos as cores das formas e criamos um PatchCollection().

colors = 100 * np.random.rand(len(patches))
p = PatchCollection(patches, alpha=0.4)
p.set_array(colors)
ax.add_collection(p)
fig.colorbar(p, ax=ax)

Exibir o gráfico

Exibimos o gráfico.

plt.show()

Resumo

Este tutorial demonstrou como criar círculos, cunhas (wedges) e polígonos usando Python Matplotlib. Também aprendemos como usar .collections.PatchCollection para visualizar as formas criadas.