Я использую quadmesh
для создания простой полярной проекции. Здесь минимальный script, который производит в основном то, что я пытаюсь сделать:
from __future__ import unicode_literals
import numpy as np
import matplotlib.pyplot as plt
def make_plot(data,fig,subplot):
nphi,nt = data.shape
phi_coords = np.linspace(0,np.pi*2,nphi+1) - np.pi/2.
theta_coords = np.linspace(0,np.radians(35),nt+1)
ax = fig.add_subplot(subplot,projection='polar')
ax.set_thetagrids((45,90,135,180,225,270,315,360),(9,12,15,18,21,24,3,6))
ax.set_rgrids(np.arange(10,35,10),fmt='%s\u00b0')
theta,phi = np.meshgrid(phi_coords,theta_coords)
quadmesh = ax.pcolormesh(theta,phi,data)
ax.grid(True)
fig.colorbar(quadmesh,ax=ax)
return fig,ax
a = np.zeros((360,71)) + np.arange(360)[:,None]
b = np.random.random((360,71))
fig = plt.figure()
t1 = make_plot(a,fig,121)
t2 = make_plot(b,fig,122)
fig.savefig('test.png')
Вышеупомянутый script создает график, который выглядит следующим образом:
Я хотел бы, чтобы цветные панели:
- Не перекрывайте этикетку 6.
- масштабируются так, чтобы они были примерно такой же высоты, как и график.
Есть ли какой-нибудь трюк, чтобы сделать эту работу должным образом? (Обратите внимание, что этот макет не единственный, который я буду использовать, например, я мог бы использовать макет 1x2 или макет 4x4... Кажется, должен быть какой-то способ масштабирования цветной панели до той же высоты, что и связанный сюжет...)