matplotlib中对数极坐标轴标签的定位

matplotlib中对数极坐标轴标签的定位,matplotlib,latex,Matplotlib,Latex,我无法在此绘图中定位轴标签。我喜欢放置顶部标签,使管道与栅格对齐,并放置右侧和左侧标签,使其不接触绘图 我试过了 ax.tick_params(axis='both', which='both', pad=15) 但它没有效果。而且 rcParams 似乎与绘图的对数比例冲突。作为一个黑客,我尝试了空格,但在每个单词的开头和结尾都去掉了乳胶。最后,我尝试了不可见的Unicode符号,但结果matplotlib崩溃了 非常感谢你的帮助 诀窍是根据文本标签的位置对其进行不同的对齐。也

我无法在此绘图中定位轴标签。我喜欢放置顶部标签,使管道与栅格对齐,并放置右侧和左侧标签,使其不接触绘图

我试过了

    ax.tick_params(axis='both', which='both', pad=15)
但它没有效果。而且

rcParams
似乎与绘图的对数比例冲突。作为一个黑客,我尝试了空格,但在每个单词的开头和结尾都去掉了乳胶。最后,我尝试了不可见的Unicode符号,但结果matplotlib崩溃了

非常感谢你的帮助


诀窍是根据文本标签的位置对其进行不同的对齐。也就是说,左标签应该右对齐,右标签应该左对齐

对于顶部标签,可以将其拆分,以便第一个标签左对齐,最后一个标签右对齐

import numpy as np
from matplotlib import pyplot as plt

ax = plt.subplot(111, polar=True)
ticks = np.linspace(0, 2 * np.pi, 5, endpoint=True)
ax.set_xticks(ticks)
ax.set_theta_direction(-1)
ax.set_theta_offset(3.14 / 2.0)
plt.ylim(0, 2.5)
ax.set_xticklabels([
    r'$10\,{\rm yr}$',
    r'$100\,{\rm yr}$',
    r'$1000\,{\rm yr}$',
    r'$10,000\,{\rm yr}$', r"$100,000\,{\rm yr}|$"],
    fontsize=16)

aligns = ["left", "left", "center", "right", "right"]
for tick, align in zip(ax.get_xticklabels(), aligns):
    tick.set_ha(align)

plt.show()

谢谢!效果很好。
import numpy as np
from matplotlib import pyplot as plt

ax = plt.subplot(111, polar=True)
ticks = np.linspace(0, 2 * np.pi, 5, endpoint=True)
ax.set_xticks(ticks)
ax.set_theta_direction(-1)
ax.set_theta_offset(3.14 / 2.0)
plt.ylim(0, 2.5)
ax.set_xticklabels([
    r'$10\,{\rm yr}$',
    r'$100\,{\rm yr}$',
    r'$1000\,{\rm yr}$',
    r'$10,000\,{\rm yr}$', r"$100,000\,{\rm yr}|$"],
    fontsize=16)

aligns = ["left", "left", "center", "right", "right"]
for tick, align in zip(ax.get_xticklabels(), aligns):
    tick.set_ha(align)

plt.show()