使用matplotlib fill_between填充两条极坐标曲线

Bri*_*ndt 6 python matplotlib

我有一种感觉,我会被拍打在这一个我的额头,但我试图填补共同内部的两个极功能r = 4 sin(2?)r = 2.看来我正好与我想要的相反.有任何想法吗?

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()
Run Code Online (Sandbox Code Playgroud)

极地情节

unu*_*tbu 5

也许计算r和r2的最小值,然后在0和最小值之间填充:

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 美丽的。谢谢你。(拍拍额头) (2认同)