Reputation: 165
I have a feeling I'm going to be smacking my forehead on this one, but I'm trying to fill the common interior of two polar functions r = 4 sin(2θ)
and r = 2
. It seems I'm getting the opposite of what I want. Any ideas?
import numpy as np
import matplotlib.pyplot as plt
theta = np.arange(0, 2, 1./180)*np.pi
r = abs(4*np.sin(2*theta))
r2 = 2 + 0*theta
plt.polar(theta, r, lw=3)
plt.polar(theta, r2, lw=3)
plt.fill_between(theta, r, r2, alpha=0.2)
plt.show()
Upvotes: 10
Views: 6600
Reputation: 880687
Perhaps compute the mininum of r and r2, and then fill between 0 and that minimum:
import numpy as np
import matplotlib.pyplot as plt
theta = np.arange(0, 2, 1./180)*np.pi
r = abs(4*np.sin(2*theta))
r2 = 2 + 0*theta
r3 = np.minimum(r, r2)
plt.polar(theta, r, lw=3)
plt.polar(theta, r2, lw=3)
plt.fill_between(theta, 0, r3, alpha=0.2)
plt.show()
Upvotes: 12