Matplotlib 注释在极坐标图上不合适

Matplotlib annotations are out of place on polar graph

我正在尝试在极坐标投影的 matplotlib ax 对象上添加一些注释。大多数注释都很长(40 +/- 3 个字符)。
有没有办法在极投影上更好地控制这些较长的注释?更多的控制,我的意思是更接近直线。

# This annotation works alright
fig = plt.figure()
ax = plt.subplot(111, projection="polar")
ax.axvline(x=np.pi/3, color="black", alpha=0.618)
ax.annotate("this ok", xy=[np.pi/3,0.75], rotation=np.rad2deg(np.pi/3))

# This one doesn't work
fig = plt.figure()
ax = plt.subplot(111, projection="polar")
ax.axvline(x=np.pi/3, color="black", alpha=0.618)
ax.annotate("this doesn't work b/c it's pretty long", xy=[np.pi/3,0.75], rotation=np.rad2deg(np.pi/3))

尝试将字体大小设置得更小以适合

SIZE = 8
MED_SIZE = 10
BIG_SIZE = 12
plt.rc('axes',titlesize=SIZE) #fontsize of the axes titles is set to 8

问题是注释文本被旋转了。因此,围绕整个文本的矩形(称为边界框)的左上角远离文本。但是,这个左上角默认位于 ax.annotate()xy 参数指定的坐标处。这可以在下面的左图中看到。

解决方法是改用周围矩形的左下角,将其移动到靠近原点的地方。可以通过指定 ha="left"(水平对齐)、va="bottom".

来使用左下角
ax2.annotate("this does work b/c we specifiy alignment", 
            xy=[0,0.07], rotation=np.rad2deg(np.pi/3),
            ha="left", va="bottom")