gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 06:40:19 25 4
gpt4 key购买 nike

我无法在此图中定位轴标签。我喜欢放置顶部标签,使管道与网格对齐,并放置左右标签,以便它们不接触绘图。

我试过了

    ax.tick_params(axis='both', which='both', pad=15)

但是没有效果。还有,

rcParams

似乎与情节的对数尺度冲突。作为 hack,我尝试了空格,但每个单词的开头和结尾都没有 LaTeX。最后,我尝试了不可见的 Unicode 符号,但只让 matplotlib 崩溃了。

非常感谢您的帮助!

log-polar plot enter image description here

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()

最佳答案

诀窍是根据文本标签的位置以不同方式对齐文本标签。也就是说,左边的标签应该右对齐,右边的标签应该左对齐。

对于顶部标签,将其拆分是有意义的,这样第一个标签左对齐,最后一个标签右对齐。

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()

enter image description here

关于matplotlib - matplotlib 中对数极坐标图轴标签的定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42913053/

25 4 0