n, radii = 50, [.7, .95] theta = np.linspace(0, 2*np.pi, n, endpoint=True) xs = np.outer(radii, np.cos(theta)) ys = np.outer(radii, np.sin(theta)) # Insert nan between two closed lines. xs = np.r_[xs[0,:], np.array([np.nan]), xs[1,:][::-1]] ys = np.r_[ys[0,:], np.array([np.nan]), ys[1,:][::-1]] ax = plt.subplot(111, aspect='equal') ax.fill(np.ravel(xs), np.ravel(ys)) plt.show()