我一直在寻找一个可靠的方法,在极坐标图中正确地定位刻度和坐标轴标签。请看以下示例:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=[10, 5])
ax0 = fig.add_axes([0.05, 0.05, 0.4, 0.9], projection="polar")
ax1 = fig.add_axes([0.55, 0.05, 0.4, 0.9], projection="polar")
r0 = np.linspace(10, 12, 10)
theta0 = np.linspace(0, 0.1, 10)
ax0.quiver(theta0, r0, -0.1, 0.1)
ax1.quiver(theta0 + np.pi, r0, -0.1, 0.1)
ax0.set_thetamin(-2)
ax0.set_thetamax(10)
ax1.set_thetamin(178)
ax1.set_thetamax(190)
for ax in [ax0, ax1]:
# Labels
ax.set_xlabel("r")
ax.set_ylabel(r"$\theta$", labelpad=10)
# R range
ax.set_rorigin(0)
ax.set_rmin(9)
ax.set_rmax(13)
plt.show()
这导致了如下图所示:
(a) 半径轴上的刻度标签位置在图中从底部切换到顶部,角度轴的刻度标签也从右到左切换。
(b) 坐标轴标签的位置是固定的。我希望坐标轴标签也随着刻度标签移动。即在左边的图中,"theta" 应该在右侧,在右边的图中 "r" 应该在顶部。
如何以正确的方式控制轴/刻度标签的位置?例如,如果旋转 90 度,则情况会变得更糟,因为此时角度轴实际上是垂直的,刻度标签完全偏离。