Я думаю, что наиболее важным моментом является выяснение того, как обычные понятия слева, справа, снизу и сверху переводятся в полярные оси в matplotlib.

Угловая ось - это ось "х". Радиальная ось - это ось «у». «Дно» - это внешнее кольцо. «Верх» - это внутреннее кольцо. «Слева» - радиальная ось в начале угловой оси, «справа» - ее конец.
Затем это позволяет установить позиции галочки как обычно, например,
ax.tick_params(labelleft=True, labelright=False,
labeltop=False, labelbottom=True)
для случая, показанного выше.
Метки x и y (set_xlabel
/ set_ylabel
) не переведены. Здесь слева, справа, сверху, снизу относятся к декартовому определению, как и с обычными линейными осями. Это означает, что для определенных позиций их нельзя использовать для маркировки оси, потому что они слишком далеко. Альтернативой является создание text
в желаемой позиции.
Полный пример кода:
import numpy as np
import matplotlib.pyplot as plt
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(10,5),
subplot_kw=dict(projection="polar"))
ax0.set(thetamin=180, thetamax=230)
ax1.set(thetamin= 0, thetamax= 50)
plt.setp([ax0, ax1], rorigin=0, rmin=5, rmax=10)
ax0.tick_params(labelleft=False, labelright=True,
labeltop=True, labelbottom=False)
trans, _ , _ = ax1.get_xaxis_text1_transform(-10)
ax1.text(np.deg2rad(22.5), -0.18, "Theta Label", transform=trans,
rotation=22.5-90, ha="center", va="center")
plt.show()
