我正在为我的Python课程做作业,我们的一个问题要求我们用笛卡尔坐标和极坐标绘制贝塞尔函数 . 我遇到了后者 . 该问题还要求我们掩盖任何半径大于20的值以及.4和-.4之间的任何θ值 . 这是我遇到问题的地方 . 我觉得我正在设置正确的面具,但我不能让图形看起来像笛卡尔版本 . 用pcolormesh绘制两者 .

Picture of Code: Top is Cartesian / Bottom is Polar

在极地我用u来定义半径,j用来定义角度,k等于半径'u'的贝塞尔函数 . j0代表bessel函数 .

from scipy.special import j0, j1, jn
fig = plt.figure()
ax = fig.add_subplot(111, polar=True)
j = np.linspace(-np.pi, np.pi, 200)
u = np.linspace(0, 20, 200)
k = j0(u)
jmask = np.ma.masked_where((j<.4) & (j>-.4), j)
umask = np.ma.masked_greater(u, 20, copy=True)
U, J = np.meshgrid(umask, jmask)
plt.pcolormesh(J, U, j0(U))

任何帮助,将不胜感激 .