Data Visualization

Plotando Círculos Eficientemente no Matplotlib

Spread the love

O Matplotlib oferece diversas maneiras de visualizar círculos, cada uma com suas próprias vantagens e desvantagens. Este artigo explora três métodos proeminentes, comparando sua eficiência e adequação para diferentes aplicações.

Sumário

  1. Usando matplotlib.patches.Circle
  2. Plotando a partir da Equação da Circunferência
  3. Aproximando com um Gráfico de Dispersão

1. Usando matplotlib.patches.Circle

Este é o método mais direto e geralmente preferido. A classe matplotlib.patches.Circle cria um objeto círculo que pode ser adicionado diretamente ao seu gráfico. É eficiente e produz gráficos vetoriais limpos.


import matplotlib.pyplot as plt
from matplotlib.patches import Circle

fig, ax = plt.subplots()

center_x, center_y = 0, 0
radius = 2

circle = Circle((center_x, center_y), radius, facecolor='skyblue', edgecolor='black', linewidth=2)
ax.add_patch(circle)

ax.set_xlim([-3, 3])
ax.set_ylim([-3, 3])
ax.set_aspect('equal') # Garante que o círculo apareça circular
plt.title('Círculo usando matplotlib.patches.Circle')
plt.show()

2. Plotando a partir da Equação da Circunferência

Uma circunferência pode ser definida por sua equação: (x – h)² + (y – k)² = r², onde (h, k) é o centro e r é o raio. Podemos gerar coordenadas x e y que satisfazem esta equação e plotá-las.


import matplotlib.pyplot as plt
import numpy as np

h, k = 0, 0
r = 2

theta = np.linspace(0, 2 * np.pi, 200)  # Mais pontos para um círculo mais suave
x = h + r * np.cos(theta)
y = k + r * np.sin(theta)

plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.title('Círculo a partir da Equação')
plt.gca().set_aspect('equal')
plt.show()

3. Aproximando com um Gráfico de Dispersão

Um gráfico de dispersão pode aproximar uma circunferência plotando muitos pontos gerados aleatoriamente dentro do raio da circunferência. Este método é menos eficiente e menos preciso do que os dois anteriores, mas demonstra uma abordagem diferente.


import matplotlib.pyplot as plt
import numpy as np

center_x, center_y = 0, 0
radius = 2
num_points = 500

angles = np.random.uniform(0, 2 * np.pi, num_points)
radii = np.random.uniform(0, radius, num_points)
x = center_x + radii * np.cos(angles)
y = center_y + radii * np.sin(angles)

plt.scatter(x, y, s=5) # Ajuste 's' para o tamanho do ponto
plt.xlabel("x")
plt.ylabel("y")
plt.title('Aproximação de Círculo usando Gráfico de Dispersão')
plt.gca().set_aspect('equal')
plt.show()

O método matplotlib.patches.Circle é geralmente recomendado por sua eficiência e clareza. Os outros métodos oferecem visualizações alternativas e insights sobre diferentes técnicas de plotagem.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *