使用 Matplotlib 旋转后如何避免文本倒置?

How to avoid text being upside down after rotation with Matplotlib?

我正在尝试使用 Matplotlib 在图像上放置标签。我需要在节点周围的八个八线方向上放置标签,为此我目前正在使用具有旋转模式 anchor.

text 函数

但是,对于某些角度,例如180°,标签在我想要的节点左侧,但文本由于旋转而颠倒了。到目前为止,我的解决方法是使用 upsidedown 库再次翻转文本:

ax.text(x + x_fac * SCALE / 10.0, y + y_fac * SCALE / 10.0, upsidedown.transform(stop_label),
        rotation=angle, rotation_mode='anchor')

但是,有些字符在翻转时显示不正确。这就是为什么我正在寻找一种更好的方法来做到这一点。有人有想法吗?

查看horizontalalignment.

ax.text(0.5, 0.5, "Right", horizontalalignment="right", rotation=45, rotation_mode="anchor")
ax.text(0.5, 0.5, "Left", horizontalalignment="left", rotation=315, rotation_mode="anchor")

对齐时,文本将在节点左侧,因此180°变为0°。不需要 upsidedown.