Como Traçar um Círculo em Matplotlib

Suraj Joshi 30 janeiro 2023
  1. matplotlib.patches.Circle() Método para Traçar um Círculo em Matplotlib
  2. Equação de Círculo para Traçar um Círculo em Matplotlib
  3. Gráfico de dispersão de pontos
Como Traçar um Círculo em Matplotlib

Para traçar um círculo em Matplotlib, podemos utilizar qualquer um dos seguintes métodos:

  • matplotlib.patches.Circle() método
  • Equação de Círculo
  • Gráfico de dispersão de pontos

matplotlib.patches.Circle() Método para Traçar um Círculo em Matplotlib

Sintaxe:

matplotlib.patches.Circle((x, y), r=5, **kwargs)

(x, y) é o centro do círculo e r é o raio com um valor padrão de 5.

Precisamos adicionar um círculo aos eixos com o método add_artist, pois Circle é uma subclasse de Artist.

import matplotlib.pyplot as plt

figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3)

axes.set_aspect(1)
axes.add_artist(draw_circle)
plt.title("Circle")
plt.show()

Círculo de plotagem com o método matplotlib.patches.Circle()

Para traçar um círculo sem preencher a cor, devemos definir o parâmetro fill para ser False.

import matplotlib.pyplot as plt

figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3, fill=False)

axes.set_aspect(1)
axes.add_artist(draw_circle)
plt.title("Circle")
plt.show()

Círculo de plotagem com matplotlib.patches.Circle() método sem cor de preenchimento

Podemos tornar o código acima mais simples ligando rapidamente o círculo em uma trama existente com a ajuda das funções gcf() e gca().

import matplotlib.pyplot as plt

figure, axes = plt.subplots()
draw_circle = plt.Circle((0.5, 0.5), 0.3, fill=False)

plt.gcf().gca().add_artist(draw_circle)
plt.title("Circle")
axes.set_aspect(1)
plt.show()

Círculo de parcelas mais simples

Equação de Círculo para Traçar um Círculo em Matplotlib

Equação Paramétrica de Círculo

A equação paramétrica do círculo é x=r*cos(theta) e y=r*sin(theta).

import numpy as np
import matplotlib.pyplot as plt

theta = np.linspace(0, 2 * np.pi, 100)

radius = 0.3

a = radius * np.cos(theta)
b = radius * np.sin(theta)

figure, axes = plt.subplots(1)

axes.plot(a, b)
axes.set_aspect(1)

plt.title("Circle using Parametric Equation")
plt.show()

círculo de trama com equação paramétrica de círculo

Forma Center-Radius da Equação do Círculo

Também podemos traçar um círculo usando a forma de centro-rádio da equação do círculo.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-0.5, 0.5, 100)
y = np.linspace(-0.5, 0.5, 100)

a, b = np.meshgrid(x, y)

C = a ** 2 + b ** 2 - 0.2

figure, axes = plt.subplots()

axes.contour(a, b, C, [0])
axes.set_aspect(1)

plt.show()

círculo de trama com a equação geral do círculo

Gráfico de dispersão de pontos

Também podemos desenhar um círculo em Matplotlib utilizando o método scatter() e ajustar o raio utilizando o parâmetro s. A área do círculo é pi/4*s.

import matplotlib.pyplot as plt

plt.scatter(0, 0, s=4000)
plt.title("Circle")

plt.xlim(-0.75, 0.75)
plt.ylim(-0.75, 0.75)

plt.show()

Círculo de plotagem com plotagem de dispersão

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn