我无法在此图中定位轴标签。我喜欢定位顶部标签,以便管道与网格对齐,以及右侧和左侧标签,以便它们不会触及绘图。
我试过
ax.tick_params(axis='both', which='both', pad=15)
但没有效果。另外,
rcParams
似乎与情节的对数尺度相冲突。作为一个黑客,我尝试了空格,但是在每个单词的开头和结尾都删除了LaTeX。最后,我尝试了不可见的Unicode标志,但只是让matplotlib崩溃了。
非常感谢您的帮助!
import numpy
from matplotlib import pyplot as plt
ax = plt.subplot(111, polar=True)
plt.rc('text', usetex=True)
plt.rc('font', family='serif')
ax.set_xticks(numpy.linspace(0, 2 * 3.14, 4, endpoint=False))
ax.set_theta_direction(-1)
ax.set_theta_offset(3.14 / 2.0)
plt.ylim(0, 2.5)
ax.set_xticklabels([
r'$100,000\,{\rm yr}|10\,{\rm yr}$',
r'$100\,{\rm yr}$',
r'$1000\,{\rm yr}$',
r'$10,000\,{\rm yr}$'],
fontsize=16)
plt.show()
答案 0 :(得分:0)
技巧可以是根据文本标签的位置不同地对齐文本标签。也就是说,左侧标签应对齐,右侧标签左侧。
对于顶部标签,将其拆分是有意义的,这样第一个标签左对齐,最后一个标签右对齐。
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()