Как я могу (в питоне) точно и гибко отображать два массива в разных полушариях полярного графика?
Я хотел бы построить массив таким образом, чтобы половина его отображалась в верхней полусфере полярного графика, а половина — в нижней. (Я разделяю массив на две половины, чтобы использовать две разные цветовые карты: открыты для разных способов сделать это, пока эта функциональность сохраняется.) В настоящее время я показываю массив с помощью pcolormesh, но не могу определить сетку. правильно, чтобы избежать смещения на графике. Ниже приведен простой пример с фиктивными данными. Я хотел бы, чтобы в этом примере была показана одна прямая линия от верхней части графика к нижней — красная сверху, синяя снизу, без разрыва посередине.
# make test data: should appear as a straight line down the center
Rtest = np.zeros((39, 165), np.float_)
Rtest[:, 82] = 1.
Itest = np.ones(39)
fig = plt.figure()
ax = fig.add_subplot(111, projection="polar")
# plot one half on the bottom
nv1, nthets1 = Rtest[:20, :].shape
r1 = np.linspace(0, nv1, nv1)
t1 = np.linspace(np.pi, np.pi*2, nthets1+1, endpoint=True)
R1, T1 = np.meshgrid(r1, t1)
ax.pcolormesh(T1, R1, Rtest[:20, :].T, cmap='Blues')
# plot the other half on top
nv2, nthets2 = Rtest[20:, :].shape
r2 = np.linspace(0, nv2, nv2)
t2 = np.linspace(0, np.pi, nthets2, endpoint=False)
R2,T2 = np.meshgrid(r2, t2)
ax.pcolormesh(T2, R2, Rtest[20:, :].T, cmap='Reds')#, **newallkwargs)
ax.plot(0, 0, '.')
Вместо этого отображается следующее. (Я также нарисовал точку в точке (0, 0), чтобы подчеркнуть смещение, которое я вижу.) В центре есть радиальный зазор, которого я хотел бы избежать, а также то, что кажется смещением в тета между две половины.
Макетные данные отражают общий случай: длина массива может быть нечетной, так что массив нельзя разрезать на две четные половины. В этом случае я бы хотел, чтобы более короткая половина просто не простиралась так далеко радиально, как другая (как это происходит в красном полукруге ниже).
Любые указатели на полярные графики pcolormesh или на то, как добиться желаемого эффекта, приветствуются.