我试图重新定位y或" r"极地情节上的标签:
import numpy as np
import matplotlib.pyplot as plt
theta = np.linspace(0, 2 * np.pi)
r = np.linspace(0, 2)
plt.polar(theta, r)
rlab = plt.ylabel("Directivity [dB]")
rlab.set_position((1.0, 0.6))
rlab.set_rotation(0)
plt.show()
给出:
似乎忽略了x位置参数。我希望标签出现在情节之外,在yticks的右上方。
答案 0 :(得分:1)
位置正在改变,命令不会被忽略。您可以在x
中使用rlab.set_position((1.0, x))
的值进行检查。
话虽如此,我没有发现位置元组中第一个参数的任何影响。更令人惊讶的是,第一个值正在被重置:
>>> rlab.get_position()
(372.8395415374975, 0.6)
>>> %hist -op 57-62
>>> rlab.set_position((5.0, 0.9))
>>> rlab.get_position()
(5.0, 0.9)
>>> plt.show()
>>> rlab.get_position()
(372.8395415374975, 0.9)
因此,当垂直位置被改变时,水平位置不会被改变。似乎是开发人员的错误或故意的意图。
作为一种解决方法,您可以使用定位文本标签:
ax = plt.gca()
plt.text(1, .8, "test", transform=ax.transAxes)
或者,您可以在ylabel中添加填充,如下所示:
ax.yaxis.labelpad = -100 # negative padding pushes the label to the right
(这是一个建议elsewhere on stackoverflow),但我发现这种方法不够灵活。