N = 100
theta = np.random.rand(N) * np.pi * 2
r = np.cos(theta * 2) + np.random.randn(N) * 0.1
ax = pl.subplot(111, polar=True)
ax.scatter(theta, r)
circle = pl.Circle((0.5, 0.3), 0.2, transform=ax.transData._b, color='red',
    alpha=0.4)
ax.add_artist(circle)
Matplotlib - Drawing a smooth circle in a polar plot